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

Nueva columna donde primera instancia de ID de cliente = 1

Hola

Actualmente estoy intentando crear una nueva columna (First_Instance) que me dará un valor de 1 si el ID es la primera instancia que aparece en el conjunto de datos. De lo contrario, si el valor ya se ha producido en cualquier línea anterior, el valor debe ser 0. Consulte la tabla a continuación:

IDENTIFICACIÓNClienteFirst_Instance
1A1
1A0
2B1
2B0
2B0
3C1

Soy bastante nuevo en power bi y DAX. ¡Cualquier ayuda sería muy apreciada! Gracias a todos de antemano.

8 REPLIES 8
Syndicate_Admin
Administrator
Administrator

Hay @jmansour ,

Puede agregar un clolumn de índice primero en el editor de power query y, a continuación, usar esta fórmula dax para obtener el resultado:

first_dax =
Dónde _1 = CALCULAR(MIN(«Tabla»[Índice]),FILTRO('Tabla',[ID]=ANTERIOR(«Tabla»[ID])))
devolución
si([Índice]=_1,1,0)
Resultado:
vchenwuzmsft_0-1646899767816.png

Pbix al final puedes referirte.

Saludos

Equipo de apoyo a la comunidad _ chenwu zhu

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

Eso es interesante. Cuando ejecuto este código, la columna sum(first_dax) es menor que el recuento distinto de la columna ID. Creé el índice como se explicó y verifiqué dos veces para asegurarme de que el recuento distinto de la columna Índice = columna ID de recuento. ¿Tienes alguna idea de por qué podría ser esto?

¡Gracias por la respuesta!

Hay @jmansour ,

¿La suma(first_dax) de código es una medida o columna? si mide, puede verse afectado por el contexto del filtro, significa que allí se ha aplicado algún filtro. o compartir más detalles o alguna captura de pantalla sin datos confidenciales.

Saludos

Equipo de apoyo a la comunidad _ chenwu zhu

Syndicate_Admin
Administrator
Administrator

Hola

Este código M funciona

let
    Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
    Partition = Table.Group(Source, {"ID"}, {{"Partition", each Table.AddIndexColumn(_, "Index",1,1), type table}}),
    #"Expanded Partition" = Table.ExpandTableColumn(Partition, "Partition", {"Customer", "Index"}, {"Customer", "Index"}),
    #"Added Custom" = Table.AddColumn(#"Expanded Partition", "First Instance", each if [Index]=1 then [Index] else 0),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Index"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Removed Columns",{{"First Instance", Int64.Type}})
in
    #"Changed Type"

Espero que esto ayude.

Untitled.png

Syndicate_Admin
Administrator
Administrator

Hola

En Power Query se obtiene

serpiva64_1-1646687450773.png

Aplicando estos pasos:

dejar
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUXIEYkOlWB0EzwDMMwKynOByMJ4BFp4xkOWMTWUsAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) en la tabla de tipos [ID = _t, Customer = _t, First_Instance = _t]),
#"Columnas eliminadas" = Table.RemoveColumns(Source,{"First_Instance"}),
#"Changed Type" = Table.TransformColumnTypes(#"Columnas eliminadas",{{"ID", Int64.Type}, {"Customer", type text}}),
#"Filas agrupadas" = Table.Group(#"Changed Type", {"ID"}, {{"AllRows", cada _, escriba tabla [ID=nullable number, Customer=nullable text]}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each Table.AddIndexColumn([AllRows],"Custom",1)),
#"Se quitaron otras columnas1" = Table.SelectColumns(#"Added Custom",{"Custom"}),
#"Expanded Custom" = Table.ExpandTableColumn(#"Removed Other Columns1", "Custom", {"ID", "Customer", "Custom"}, {"ID", "Customer", "Custom.1"}),
#"Added Custom1" = Table.AddColumn(#"Expanded Custom", "FirstIstance", cada uno if [Custom.1] = 1 then 1 else 0)
en
#"Añadido Personalizado1"

Si esta publicación es útil para ayudarlo a resolver su problema, considere darle a la publicación un pulgar hacia arriba

y aceptarlo como solución!

Gracias por la respuesta. ¿Podría enviar una captura de pantalla de cuál es su fórmula "Columna.1" en la vista de datos? ¡Gracias!

A partir de esto:

serpiva64_0-1646688484910.png

a continuación, agrupar por

serpiva64_1-1646688506120.png

serpiva64_2-1646688537521.png

serpiva64_3-1646688565685.png

y finalmente

serpiva64_4-1646688590309.png

Desafortunadamente, esto no funciona, ¿hay alguna manera de hacerlo sin usar el editor de consultas? Por ejemplo, en la vista de datos puede agregar una columna y realizar una transformación utilizando código DAX. por favor vea la captura de pantalla a continuación:

jmansour_0-1646689943451.png

Me gustaría hacer una fórmula de tipo COUNTIF() para contar solo la primera instancia.

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.