Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

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.

Reply
Anonymous
Not applicable

DAX - Calcular el importe diario entre la tabla de tarifas y la tabla de transacciones diarias

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.

smileamile_2-1600102644111.png

1 ACCEPTED SOLUTION
v-eqin-msft
Community Support
Community Support

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:

9.15.1.png

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:

9.15.1.2.png

¿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

View solution in original post

6 REPLIES 6
v-eqin-msft
Community Support
Community Support

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:

9.15.1.png

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:

9.15.1.2.png

¿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

amitchandak
Super User
Super User

@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

Anonymous
Not applicable

@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.

smileamile_0-1600106527520.png

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.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...
Anonymous
Not applicable

@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_0-1600212155723.png

@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

@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.