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
Syndicate_Admin
Administrator
Administrator

Medida para contar transacciones para todos los niveles de jerarquía

Capture.JPG

Por favor, ayúdame a crear una medida que cuente cuántas transacciones hay para un período determinado para cada nivel jerárquico de cuentas. Estoy realmente atrapado en este momento.

Hay dos tablas: transacciones y cuentas. Cada cuenta tiene una cuenta principal y una ruta calculada (tabla de cuenta[nombre de cuenta]).

Estaba probando algo como esto, pero esto solo muestra si la cuenta en sí ha realizado una transacción y no si sus cuentas secundarias han realizado transacciones. Esta medida será en una matriz, donde podré ver cuántas transacciones tiene cada nivel.

Recuento de transacciones =
VAR selPeriod = SELECTEDVALUE(tabla de períodos[período])
VAR selAccount = SELECTEDVALUE(tabla de cuenta[nombre de cuenta])
VAR sumforAccount = SUMX(tabla de transacciones, IF(tabla de transacciones[período]=selPeriod && tabla de transacciones[nombre de cuenta]=selAccount,1,0))

DEVOLUCIÓN
IF(sumforAccount>0,sumforAccount,0)

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

@LivaK ,

Creo que la columna Ruta debería ser un Introducir datos. La función de ruta no es adecuada en el modelo de datos.

Es mejor que desconecte la tabla Cuenta y la tabla Transacción o cree una tabla DimAccount no relacionada, la relación afectará la medida.

Pruebe este código.

Count =
VAR _SELECTACCOUNT =
    SELECTEDVALUE ( Account[Account Name] )
VAR _PATH =
    SUMMARIZE ( ALLSELECTED ( Account ), Account[Account Name], Account[Path] )
VAR _Search =
    FILTER (
        ADDCOLUMNS ( _PATH, "Search", SEARCH ( _SELECTACCOUNT, [Path],, 0 ) ),
        [Search] <> 0
    )
VAR _ACCOUNTLIST =
    FILTER (
        SUMMARIZE ( _Search, [Account Name] ),
        [Account Name] IN VALUES ( 'Transaction'[Account Name] )
    )
VAR _COUNT =
    COUNTAX ( _ACCOUNTLIST, [Account Name] )
RETURN
    _COUNT

El resultado es el siguiente.

1.png

Saludos
Rico Zhou

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

@LivaK ,

Creo que la columna Ruta debería ser un Introducir datos. La función de ruta no es adecuada en el modelo de datos.

Es mejor que desconecte la tabla Cuenta y la tabla Transacción o cree una tabla DimAccount no relacionada, la relación afectará la medida.

Pruebe este código.

Count =
VAR _SELECTACCOUNT =
    SELECTEDVALUE ( Account[Account Name] )
VAR _PATH =
    SUMMARIZE ( ALLSELECTED ( Account ), Account[Account Name], Account[Path] )
VAR _Search =
    FILTER (
        ADDCOLUMNS ( _PATH, "Search", SEARCH ( _SELECTACCOUNT, [Path],, 0 ) ),
        [Search] <> 0
    )
VAR _ACCOUNTLIST =
    FILTER (
        SUMMARIZE ( _Search, [Account Name] ),
        [Account Name] IN VALUES ( 'Transaction'[Account Name] )
    )
VAR _COUNT =
    COUNTAX ( _ACCOUNTLIST, [Account Name] )
RETURN
    _COUNT

El resultado es el siguiente.

1.png

Saludos
Rico Zhou

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Syndicate_Admin
Administrator
Administrator

La función PATHCONTAINS debería ser útil aquí.

Vea si algo como esto funciona:

Count of Transactions =
VAR selPeriod   = SELECTEDVALUE ( 'period table'[period] )
VAR selAccount  = SELECTEDVALUE ( 'account table'[account name] )
VAR subAccounts =
    CALCULATETABLE (
        VALUES ( 'account table'[account name] ),
        FILTER (
            ALL ( 'account table' ),
            PATHCONTAINS ( 'account table'[Path], selAccount )
        )
    )
RETURN
    CALCULATE (
        COUNTROWS ( 'transaction table' ),
        TREATAS ( subAccounts, 'transaction table'[Account Name] )
    )

Gracias, @AlexisOlson por su rápida respuesta, pero desafortunadamente esto también me da cuenta solo para las cuentas que realmente tienen la transacción y no para las cuentas principales.
Simplemente no puedo entender cómo hacer que la medida calcule: si se selecciona una cuenta principal (la selección se realiza desde el lado de la tabla de cuentas y no desde la tabla de transacciones), resuma todas las transacciones de la cuenta secundaria.

Si la tabla de cuentas está relacionada con la tabla de transacciones en [Nombre de cuenta], intente ajustar el TREATAS en mi código DAX para

TREATAS ( subAccounts, 'account table'[Account Name] )

¿Se puede compartir un pbix de muestra? La forma en que se configuran las relaciones puede marcar una gran diferencia.

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.