Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Tengo una tabla de transacciones (Artículos vendidos) que tiene suma diaria para el total de artículos por día.
También tengo una tabla de tarifas que realiza un seguimiento de los cambios de tarifa (Fecha de inicio efectiva y Fecha de detención efectiva). En este ejemplo, la tasa es por artículo.
Necesito una medida calculada que haga la siguiente lógica: Tasa por artículo * Total de artículos (la tasa debe seleccionarse en función del inicio y la detención efectivos). Si no hay un registro para el total de artículos en la tabla Artículos vendidos, me gustaría ver $0.
A continuación se muestran ejemplos de tabla y el resultado resaltado es lo que esta medida debe hacer.
Solved! Go to Solution.
Hola @smileamile ,
Según mi opinión, desea calcular el producto aritmético filtrado de dos tablas, ¿Correcto?
Puede usar la siguiente fórmula:
Measure 2 =
VAR tab =
ADDCOLUMNS (
'Item Sold',
"Result",
VAR _date = [Date]
VAR _loc = [Location]
VAR _total = [Total]
RETURN
SUMX (
FILTER (
ALL ( Rates ),
OR (
NOT ( ISBLANK ( [Effective Stop Date] ) )
&& [Effective Start Date] <= _date
&& [Effective Stop Date] >= _date
&& [Location] = _loc,
_date >= [Effective Start Date]
&& ISBLANK ( [Effective Stop Date] )
)
),
[Rate] * _total
)
)
RETURN
SUMX ( tab, [Result] )
Mi visualización tiene este aspecto:
O bien, puede combinar las dos tablas en el Editor de consultas y, a continuación, utilizar:
Measure =
IF (
MAX ( 'Merge1'[Rates.Effective Stop Date] ) <> BLANK (),
IF (
MAX ( 'Merge1'[Date] ) >= MAX ( 'Merge1'[Rates.Effective Start Date] )
&& MAX ( 'Merge1'[Date] ) <= MAX ( 'Merge1'[Rates.Effective Stop Date] ),
1,
0
),
IF (
MAX ( 'Merge1'[Date] ) >= MAX ( 'Merge1'[Rates.Effective Start Date] ),
1,
0
)
)
Daily Amount =
MAX ( 'Merge1'[Total] ) * MAX ( 'Merge1'[Rates.Rate] )
Aplicar medida para filtrar (establecido como "es 1"),Mi visualización tiene este aspecto:
¿He respondido a tu pregunta? Por favor, marque mi respuesta como solución. Muchas gracias.
Si no es así, cargue algunas muestras de datos insensibles y la salida esperada.
Saludos
Eyelyn Qin
Hola @smileamile ,
Según mi opinión, desea calcular el producto aritmético filtrado de dos tablas, ¿Correcto?
Puede usar la siguiente fórmula:
Measure 2 =
VAR tab =
ADDCOLUMNS (
'Item Sold',
"Result",
VAR _date = [Date]
VAR _loc = [Location]
VAR _total = [Total]
RETURN
SUMX (
FILTER (
ALL ( Rates ),
OR (
NOT ( ISBLANK ( [Effective Stop Date] ) )
&& [Effective Start Date] <= _date
&& [Effective Stop Date] >= _date
&& [Location] = _loc,
_date >= [Effective Start Date]
&& ISBLANK ( [Effective Stop Date] )
)
),
[Rate] * _total
)
)
RETURN
SUMX ( tab, [Result] )
Mi visualización tiene este aspecto:
O bien, puede combinar las dos tablas en el Editor de consultas y, a continuación, utilizar:
Measure =
IF (
MAX ( 'Merge1'[Rates.Effective Stop Date] ) <> BLANK (),
IF (
MAX ( 'Merge1'[Date] ) >= MAX ( 'Merge1'[Rates.Effective Start Date] )
&& MAX ( 'Merge1'[Date] ) <= MAX ( 'Merge1'[Rates.Effective Stop Date] ),
1,
0
),
IF (
MAX ( 'Merge1'[Date] ) >= MAX ( 'Merge1'[Rates.Effective Start Date] ),
1,
0
)
)
Daily Amount =
MAX ( 'Merge1'[Total] ) * MAX ( 'Merge1'[Rates.Rate] )
Aplicar medida para filtrar (establecido como "es 1"),Mi visualización tiene este aspecto:
¿He respondido a tu pregunta? Por favor, marque mi respuesta como solución. Muchas gracias.
Si no es así, cargue algunas muestras de datos insensibles y la salida esperada.
Saludos
Eyelyn Qin
@smileamile , Obtener la nueva columna en la tabla de elementos
minx(filter(Rate,item[Date]>- Rate[Start Date] && (isblank(Rate[end date]) á item[date]>'Rate[end date]) && Item[Location] ?Rate [Location]),Rate[Rate])
puede múltiples con Total
@Greg_Deckler - ¿podría utilizarse la función lookupvalue para controlar esto? Necesito espacios en blanco (los registros no existen para esa fecha en la tabla) para rellenar con 0
Una pregunta más salió de hacer esto. Creé una medida para multiplicar el Total de Tasa*Elemento, mostrando 0 si está en blanco. Sin embargo, tengo un filtro de fecha en el gráfico que solo muestra el mes actual (pero podría cambiarse para mostrar el mes anterior). El problema al que me enfrento es que el total no se limita a la fecha en el ámbito del filtro de fecha seleccionado.
He creado una columna calculada para evitar esto, pero eso no mostrará $0 si hay un valor en blanco.
Lo ideal es que me muestre el diario como Medida calculada, pero el MTD debe mostrar el total que está en la línea Columna calculada.
Medida calculada: if(isblank(SUM('Items'[Rate])*SUM('Items'[TotalItems])),0,SUM('Items'[Rate])*SUM('Items'[TotalItems]))
Columna calculada 'Items'[Rate]*'Items'[TotalItems]
@smileamile No, no puedes usar LOOKUPVALUE para buscar entre rangos, por eso creé LookupValue Range - https://community.powerbi.com/t5/Quick-Measures-Gallery/LOOKUPVALUE-Range/m-p/974201#M430
Usted podría hacer el rango de búsqueda a un VAR y luego comprobarlo como:
VAR __Calc = <lookup range logic>
VAR __FinalCalc = IF(ISBLANK(__Calc),0,__Calc)
No estoy seguro de que sea claro en la segunda pregunta.
@Greg_Deckler Supongo que todavía estoy luchando con lo que sería el Var __Calc. ¿Primero las creo como columnas calculadas como sugiere @amitchandak? No creo que ese cálculo esté funcionando bien con las fechas efectivas.
@smileamile - Lo siento, trataré de ser más específico:
Measure =
VAR __Date = MAX([Date])
VAR __Location = MAX([Location])
VAR __Rate =
MAXX(
FILTER(
'Rates',
[Location]=__Location &&
[Effective Start Date] >= __Date &&
[Effective Stop Date] <= __Date
),
[Rate]
)
VAR __FinalCalc = IF(ISBLANK(__Rate),0,__Rate)
RETURN
__FinalCalc
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |