Forum Discussion
Contar en varias variables
Mi modelo de datos genera una única tabla ("DATOS"), que contiene una serie de variables de texto con información de personas:
| Identificador numérico | Persona1 | Persona2 | Persona3 | Persona4 |
| 58654393 | Juan | Fran | Fran | |
| 39085030 | María | María | Juan | Fran |
| 48593403 | Ana | Gema | Gema | |
| 38974340 | Fran | Juan | María | María |
Necesito saber cómo podría hacer un recuento de los identificadores numéricos en función de la persona con independencia de si está almacenado en la variable persona1, persona2, persona3, persona4. Es decir, necesito obtener esto:
Juan: 3
Fran: 4
María: 4
Ana: 1
Gema: 2
Espero que alguien me pueda orientar, soy nuevo en PowerBI. Gracias de antemano.
Hola. Pude encontrar una solución, pero podría no ser la mejor manera de hacerlo, ya que todavía estoy aprendiendo también.
1. Cree una tabla de dimenstion para Persona. (Dejé la fila en blanco en la tabla para las relaciones).
DimPerson =
SELECTCOLUMNS(
DISTINTO(
UNIÓN(
VALORES( 'Tabla'[Persona1] ),
VALORES( 'Tabla'[Persona2] ),
VALORES( 'Tabla'[Persona3] ),
VALORES( 'Tabla'[Persona4] )
)
),
"Persona", [Persona1]
)2. Cree realizaciones de muchos a uno entre las columnas Table[PersonaX] y DimPerson[Person].
3. Cree una medida para contar las filas de 'Tabla'.
Recuento de ID =
VAR _CurrentPerson = SELECTEDVALUE(DimPerson[Persona])
VAR _C1 =
CUENTAS(
FILTRO(
«Tabla»,
'Tabla'[Persona1] = _CurrentPerson
)
)
DONDE _C2 =
CALCULAR(
CUENTAS(
FILTRO(
«Tabla»,
'Tabla'[Persona2] = _CurrentPerson
)
),
USERELATIONSHIP('Tabla'[Persona2], 'DimPerson'[Persona])
)
DONDE _C3 =
CALCULAR(
CUENTAS(
FILTRO(
«Tabla»,
'Tabla'[Persona3] = _CurrentPerson
)
),
USERELATIONSHIP('Tabla'[Persona3], 'DimPerson'[Persona])
)
DONDE _C4 =
CALCULAR(
CUENTAS(
FILTRO(
«Tabla»,
'Tabla'[Persona4] = _CurrentPerson
)
),
USERELATIONSHIP('Tabla'[Persona4], 'DimPerson'[Persona])
)
DEVOLUCIÓN
_C1 + _C2 + _C3 + _C4(Lo siento por el formato)
Obtengo los resultados deseados cuando pongo DimPerson[Person] y [ID Count] en una tabla.
Como dije anteriormente, probablemente hay muchas maneras que son mejores.
PBIX: https://1drv.ms/u/s!AnF6rI36HAVkhPEwPhfdqLLaMLwOsg?e=agIbfy
4 Replies
- Syndicate_Admin
Administrator
Hola. Pude encontrar una solución, pero podría no ser la mejor manera de hacerlo, ya que todavía estoy aprendiendo también.
1. Cree una tabla de dimenstion para Persona. (Dejé la fila en blanco en la tabla para las relaciones).
DimPerson =
SELECTCOLUMNS(
DISTINTO(
UNIÓN(
VALORES( 'Tabla'[Persona1] ),
VALORES( 'Tabla'[Persona2] ),
VALORES( 'Tabla'[Persona3] ),
VALORES( 'Tabla'[Persona4] )
)
),
"Persona", [Persona1]
)2. Cree realizaciones de muchos a uno entre las columnas Table[PersonaX] y DimPerson[Person].
3. Cree una medida para contar las filas de 'Tabla'.
Recuento de ID =
VAR _CurrentPerson = SELECTEDVALUE(DimPerson[Persona])
VAR _C1 =
CUENTAS(
FILTRO(
«Tabla»,
'Tabla'[Persona1] = _CurrentPerson
)
)
DONDE _C2 =
CALCULAR(
CUENTAS(
FILTRO(
«Tabla»,
'Tabla'[Persona2] = _CurrentPerson
)
),
USERELATIONSHIP('Tabla'[Persona2], 'DimPerson'[Persona])
)
DONDE _C3 =
CALCULAR(
CUENTAS(
FILTRO(
«Tabla»,
'Tabla'[Persona3] = _CurrentPerson
)
),
USERELATIONSHIP('Tabla'[Persona3], 'DimPerson'[Persona])
)
DONDE _C4 =
CALCULAR(
CUENTAS(
FILTRO(
«Tabla»,
'Tabla'[Persona4] = _CurrentPerson
)
),
USERELATIONSHIP('Tabla'[Persona4], 'DimPerson'[Persona])
)
DEVOLUCIÓN
_C1 + _C2 + _C3 + _C4(Lo siento por el formato)
Obtengo los resultados deseados cuando pongo DimPerson[Person] y [ID Count] en una tabla.
Como dije anteriormente, probablemente hay muchas maneras que son mejores.
PBIX: https://1drv.ms/u/s!AnF6rI36HAVkhPEwPhfdqLLaMLwOsg?e=agIbfy
- MarcosPerenaRegular Visitor
Muchas gracias,
Me da error en la relación varios a uno, no me permite tener todas activas simultáneamente
- Syndicate_Admin
Administrator
Solo la relación que usa 'Tabla'[Persona1] está activa. Para las otras relaciones, utilizo USERELATIONSHIP en la medida.
- MarcosPerenaRegular Visitor
Muchas gracias, funciona! 😊