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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Determinar si el valor aparece más de una vez en la columna

Hola a todos,

Me gustaría crear una medida de "tasa de lealtad" en mi base de datos.

Mi base de datos reúne a todos los clientes de mi empresa por año, por lo que una línea corresponde a un cliente con todas estas compras.

El cliente tiene un ID, si este ID se encuentra dos veces o más en la columna, significa que el cliente no es uno nuevo, sino uno antiguo que realizó algunas compras el año pasado.

Me gustaría saber si es posible crear una "columna condicional" donde pueda encontrar la información, cliente nuevo, cliente leal, cliente antiguo .. Con esta información, podría hacer algunas medidas que serán poderosas para mi PowerBI

Si necesitas un ejemplo de mi base de datos, dime, te enviaré una imagen.

Gracias de antemano

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Hola @Alexis-Edin

Supongamos que sus datos tienen el siguiente aspecto:

FreemanZ_0-1675866080024.png

Intente agregar tres columnas como:

IsNewClient =
VAR _currentyear = YEAR(TODAY())
VAR _table =
FILTER(
        TableName,
        TableName[ClientID] = EARLIER(TableName[ClientID])
)
VAR _condition1 =
COUNTROWS(
    FILTER(
       _table,
        TableName[Year] = _currentyear
    )
)
VAR _condition2 =
COUNTROWS(
    FILTER(
       _table,
        TableName[Year] < _currentyear
    )
)
RETURN
IF(
    _condition1>0&&_condition2=0,
    "Yes", "No"
)

IsLoyalClient =
VAR _currentyear = YEAR(TODAY())
VAR _table =
FILTER(
        TableName,
        TableName[ClientID] = EARLIER(TableName[ClientID])
)
VAR _condition1 =
COUNTROWS(
    FILTER(
       _table,
        TableName[Year] = _currentyear
    )
)
VAR _condition2 =
COUNTROWS(
    FILTER(
       _table,
        TableName[Year] < _currentyear
    )
)
RETURN
IF(
    _condition1>0&&_condition2>0,
    "Yes", "No"
)

IsOldClient =
VAR _currentyear = YEAR(TODAY())
VAR _table =
FILTER(
        TableName,
        TableName[ClientID] = EARLIER(TableName[ClientID])
)
VAR _condition1 =
COUNTROWS(
    FILTER(
       _table,
        TableName[Year] = _currentyear
    )
)
VAR _condition2 =
COUNTROWS(
    FILTER(
       _table,
        TableName[Year] < _currentyear
    )
)
RETURN
IF(
    _condition1=0&&_condition2>0,
    "Yes", "No"
)

Funcionó como:

FreemanZ_1-1675866147943.png

Syndicate_Admin
Administrator
Administrator

Sí, es posible crear una "columna condicional" en su base de datos para determinar si un cliente es un cliente nuevo, leal o antiguo en función del número de veces que su ID aparece en la columna. Para ello, puede utilizar la función "SI" en Power Query.

Aquí hay un ejemplo de cómo podría verse la fórmula para la "columna condicional":

IF [ID] = 1 THEN "Nuevo cliente" ELSEIF COUNTIF([ID],[ID]) > 1 THEN "Cliente leal" ELSE "Cliente antiguo"

Puede usar esta fórmula para crear una nueva columna en su base de datos y usar esta información para crear su medida de "tasa de lealtad".

No funciona. Tengo 40 000 ID diferentes. No quiero saber para un ID. Puede ser que no escribí correctamente su fórmula, pero "countif" no existe en PowerQuery.

Si tienes otra solución, la 🙂 tomaré

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

Jan NL Carousel

Fabric Community Update - January 2025

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

Top Solution Authors