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

Seleccione lugares con clientes repetidos basados en otra selección de lugares - DAX necesario!

Hola amigos,

Tengo un cálculo para los clientes repetidos por lugar (restaurante) que va así:

Clientes repetidos ?
COUNTROWS(
FILTRO(
VALUES( Resy[AccountID] ),
CALCULATE( COUNTROWS( Resy ) ) > 1
)
)
Ahora necesito tener una tabla que muestre los recuentos de clientes repetidos por lugar cuando seleccione otro lugar en una mesa o en una segmentación de datos. Así que si tienes un huésped que visitó un restaurante dos o más y ese cliente visitó el lugar B y G quiero mostrar eso. Realmente tropezó con eso.
Gracias
Stan
1 ACCEPTED SOLUTION

Hola, @zaichusha

Por favor, pruebe la siguiente medida. El archivo pbix se adjunta al final.

Result = 
var _restaurant = SELECTEDVALUE('Table'[Restaurant])
var tab = 
SUMMARIZE(
    FILTER(
        ALL('Table'),
        NOT('Table'[Restaurant] in DISTINCT(Restaurant[Restaurant]))
    ),
    'Table'[AccountID],
    "Flag",
    IF(
        COUNTROWS(
            FILTER(
                ALL('Table'),
                [AccountID]=EARLIER('Table'[AccountID])&&
                [Restaurant] in DISTINCT(Restaurant[Restaurant])
            )
        )>0,
        1,0
    )
)
var newtab =
CALCULATETABLE(
    DISTINCT('Table'[AccountID]),
    FILTER(
        tab,
        [Flag]=1
    )
)
return
IF(
    NOT(SELECTEDVALUE('Table'[Restaurant]) in DISTINCT(Restaurant[Restaurant])),
    COUNTROWS(
        FILTER(
            ALL('Table'),
            [AccountID] in newtab&&
            [Restaurant]=SELECTEDVALUE('Table'[Restaurant])
        )
    )
)

Resultado:

a1.png

Saludos

Allan

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

View solution in original post

9 REPLIES 9
v-alq-msft
Community Support
Community Support

Hola, @zaichusha

Según su descripción, creé datos para reproducir su escenario. El archivo pbix se adjunta al final.

Mesa:

e1.png

Puede crear una medida como se indica a continuación.

Repeat Customers = 
var t = 
    SUMMARIZE(
        ALLSELECTED('Table'),
        'Table'[AccountID],
        'Table'[Restaurant],
        "Count",
        COUNTROWS('Table')
    )
var tab = 
SUMMARIZE(
    'Table',
    'Table'[AccountID],
    "Flag",
    var _count = 
    COUNTROWS(
        FILTER(
            t,
            [AccountID]=EARLIER('Table'[AccountID])&&
            [Count]>=2
        )
    )
    return 
    IF(
        _count>0,
        1,0
    )
)
var _result = 
COUNTROWS(
    FILTER(
        tab,
        [Flag]=1
    )
)
return
IF(
    ISBLANK(_result),
    0,
    _result
)

Resultado:

e2.png

e3.png

Saludos

Allan

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

Anonymous
Not applicable

Allan

Tienes una gran solución que puedo usar en mi otro objeto visual si quiero ver las cuentas reales.

Pero mi objetivo es mostrar todos los otros lugares que el cliente que repito visitó.

Al igual que en el ejemplo de datos que ha creado, si selecciona el lugar A, que las Cuentas 1, 2, 3 y 4 visitaron, los lugares B, C, F, D, E deben mostrarse con recuentos.

e1.png

Gracias

Stan

Anonymous
Not applicable

Sólo para ser más claros en el resultado final. Debería tener una cortadora de lugares con todos los restaurantes. Si elijo el Lugar A, debería poder ver lo siguiente:

LugarContar
B2
C3
D2
F1

Hola, @zaichusha

Lamento la respuesta tardía. Puede intentar crear una tabla calculada y una medida como se indica a continuación. El archivo pbix se adjunta al final.

Tabla calculada:

Restaurant = DISTINCT('Table'[Restaurant])

Medida:

Result = 
var _restaurant = SELECTEDVALUE('Table'[Restaurant])
var tab = 
SUMMARIZE(
    ALL('Table'),
    'Table'[AccountID],
    "Count",
    IF(
        COUNTROWS(
            FILTER(
                ALL('Table'),
                [AccountID]=EARLIER('Table'[AccountID])&&
                [Restaurant]=_restaurant
            )
        )>0,
        1,0
    )
)
return
IF(
    NOT(SELECTEDVALUE('Table'[Restaurant]) in DISTINCT(Restaurant[Restaurant])),
    SUMX(
        tab,
        [Count]
    )
)

Resultado:

f1.png

Saludos

Allan

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

Anonymous
Not applicable

Allan, gracias por su respuesta! Revisé el pbix y jugué con las selecciones. Parece que funciona para algunas seleciones y no funciona para otros. Por ejemplo, baced en los datos si selecciono el restaurante F (sólo AccountID 3 visitó ese lugar), se espera que vea A - 1, B - 0, D -1, pero veo lo siguiente:

zaichusha_1-1599061013870.png

Voy a tratar de pensar en su código, pero si usted tiene alguna idea por favor publicarlo.

Gracias

Stan

Hola, @zaichusha

Por favor, pruebe la siguiente medida. El archivo pbix se adjunta al final.

Result = 
var _restaurant = SELECTEDVALUE('Table'[Restaurant])
var tab = 
SUMMARIZE(
    FILTER(
        ALL('Table'),
        NOT('Table'[Restaurant] in DISTINCT(Restaurant[Restaurant]))
    ),
    'Table'[AccountID],
    "Flag",
    IF(
        COUNTROWS(
            FILTER(
                ALL('Table'),
                [AccountID]=EARLIER('Table'[AccountID])&&
                [Restaurant] in DISTINCT(Restaurant[Restaurant])
            )
        )>0,
        1,0
    )
)
var newtab =
CALCULATETABLE(
    DISTINCT('Table'[AccountID]),
    FILTER(
        tab,
        [Flag]=1
    )
)
return
IF(
    NOT(SELECTEDVALUE('Table'[Restaurant]) in DISTINCT(Restaurant[Restaurant])),
    COUNTROWS(
        FILTER(
            ALL('Table'),
            [AccountID] in newtab&&
            [Restaurant]=SELECTEDVALUE('Table'[Restaurant])
        )
    )
)

Resultado:

a1.png

Saludos

Allan

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

Anonymous
Not applicable

Allan, ¡eso hizo el truco! ¡¡¡Muchas gracias!!!

Anonymous
Not applicable

Allan, gracias por su respuesta! La solución funciona muy bien si nos fijamos en los identificadores de cuenta. Lo necesito para ir por el Lugar (restaurante). Si sustituyo el AccountID por el Restaurador, solo obtengo una fila.

zaichusha_1-1599057265332.png

Voy a tratar de jugar con su código, pero si usted tiene alguna otra idea por favor publicarlo.

Stan

Greg_Deckler
Super User
Super User

@zaichusha - Es difícil decir que aparte de que tendrá que capturar sus valores actuales para el cliente y el restaurante y luego cambiar el contexto del filtro para recoger los otros restaurantes. No es realmente suficiente información para seguir adelante, por favor primero compruebe si su problema es un problema común enumerado aquí: https://community.powerbi.com/t5/Community-Blog/Before-You-Post-Read-This/ba-p/1116882

Además, consulte este post sobre cómo obtener respuesta a su pregunta rápidamente: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490

Las partes más importantes son:
1. Datos de muestra como texto, utilice la herramienta de tabla en la barra de edición
2. Salida esperada de los datos de muestra
3. Explicación en palabras de cómo obtener de 1. a 2.


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