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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
joulethrex
Frequent Visitor

DAX - Medidas para contar el estado distinto y agrupar por fecha máxima y varios campos o clave de grupo

Estoy intentando escribir varias expresiones DAX para resumir un conjunto de datos de transacciones. La combinación de [Fabricante] y [PartNo] determinará la unicidad, por lo que esos campos deben agruparse. También puedo concatenar los 2 campos juntos y crear una clave compuesta ([ManufacturerPartKey]) si es más fácil agrupar los datos de esa manera.

Datos de ejemplo de MyTable:

 Manufacturer  PartNo     TxDate     TxStatus      ErrorCode     ManufacturerPartKey
 ABC             123    9/29/2020   Fail         CodeInvalid     ABC-123
 ABC             123    9/30/2020   Fail         CodeInvalid     ABC-123
 ABC             123    10/1/2020   Success      null            ABC-123
 ABC             789    10/1/2020   Fail         PartInvalid     ABC-789   
 ABC             567    10/1/2020   Success      null            ABC-567
 XYZ             567    9/29/2020   Fail         LoadFail        XYZ-567
 XYZ             567    9/30/2020   Fail         LoadFail        XYZ-567
 XYZ             789    10/1/2020   Fail         APIFault        XYZ-789
 LMO             456    9/29/2020   Fail         APIFault        LMO-456
 LMO             456    9/30/2020   Fail         APIFault        LMO-456
 EFG             123    10/1/2020   Success      null            EFG-123
 QRS             123    10/1/2020   Fail         PartInvalid     QRS-123
 QRS             123    10/2/2020   Fail         PartInvalid     QRS-123
 QRS             123    10/3/2020   Fail         PartInvalid     QRS-123
 QRS             123    10/4/2020   Fail         PartInvalid     QRS-123
 QRS             567    10/4/2020   Success      null            QRS-567

Requisitos:

  1. Recuento de combinaciones distintas de Fabricante + Parte No

     Salida esperada 9
  2. Recuento de éxito

     Salida esperada 4
  3. Recuento de errores "excepcionales" por [Fabricante] y [PartNo] o [ManufacturerPartKey] y TxDate máximo

     Salida esperada 5

Respuesta:

            CountFailure ?
            VAR _maxDate -
                TREATAS (
                    ADDCOLUMNS (
                        VALUES ( MyTable[ManufacturerPartKey] ),
                        "maxDate", CALCULATE ( MAX ( 'MyTable'[TxDate] )
                    ),
                    MyTable[GroupKey],
                    MyTable[TxDate]
                ) RETURN CALCULATE (
                    COUNTROWS ( SUMMARIZECOLUMNS ( MyTable[ManufacturerPartKey], MyTable[TxStatus], _maxDate )
                

4. El recuento de reprocesado (ABC-123 se presentó 3 veces y se volvió a procesar en el tercer intento)

        1

5. Recuento de códigos de error distintos por TxDate máximo

    ErrorCode        Count
    CodeInvalid       0    
    APIFault          2
    LoadFail          1
    PartInvalid       2 Null              4

Salida de tabla de resumen esperada:

Fabricante TotalSubmissions  TotalFailed  TotalSucceeded  DistinctPartNoCount  OutstandingFailures ReprocessedCount 
 ABC           5                3               2                    3                   1
 XYZ           3                3           0                    2                   2 0
 LMO                2           2 0               1                    2                   0
 EFG           1                0           1               1                   0 0
 QRS                5           4               1                    0                   0

3 REPLIES 3
V-lianl-msft
Community Support
Community Support

Hola @joulethrex ,

En función de su descripción, ha calculado el valor de "errores pendientes" y he calculado otros valores en el archivo de ejemplo. Si "errores salientes" obtiene el valor incorrecto, informe a la lógica de cálculo para ver si podemos ayudarle.

V-lianl-msft_0-1605062336600.png

Ejemplo .pbix

Saludos
Liang
Si este post ayuda, entonces considera Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola @V-lianl-msft

Gracias por tu ayuda. Para la medida RANK recibo el siguiente error "EARLIER/EARLIEST hace referencia a un contexto de fila anterior que no existe". ¿Conoces una solución para esto? Sospecho que podría ser porque estoy trabajando con datos DEV por lo que hay muchos registros duplicados que no puedo limpiar en este momento.

Hola @joulethrex ,

Debe aclararse que "rank" es una columna calculada.

La medida DAX se basa en el contexto de fila, por lo que cualquier valor determinado de segmentaciones de datos, filtros, interacciones con otras visualizaciones, variables, relaciones, campos visuales, etc. puede influir en el resultado.

Según el escenario, si se usa la medida y se utiliza el fabricante como clave principal de la tabla visual, el rango correcto no se puede calcular en la tabla visual.

Saludos
Liang
Si este post ayuda, entonces considera Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors