Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Estimados todos,
En mi tabla de hechos, tengo 2 columnas de ID (columna A y columna B) que pueden tener 3 tipos de relación:
1. Uno a uno: 1 ID en la columna A está relacionado con 1 ID en la columna B
2. Uno a muchos: 1 ID en la columna A está relacionado con muchos ID en la columna B
3. Muchos a uno: Muchos ID en la columna A están relacionados con un ID en la columna B.
Necesito crear otra columna (en este caso necesito crear Measure ya que me conecté al conjunto de datos PBI en vivo) , y mi resultado esperado sería:
Columna A | Columna B | Categoría |
A1 | B1 | 1-1 |
A2 | B2 | 1-M |
A2 | B3 | 1-M |
A3 | B4 | M-1 |
A4 | B4 | M-1 |
¿Algún consejo/ayuda sobre cómo puedo lograr este objetivo? ¡Muchas gracias!
Solved! Go to Solution.
Hola
Si desea verificar la creación de una medida, consulte la imagen a continuación y el archivo pbix adjunto.
Category measure: =
VAR currentA =
MAX ( Data[Column A] )
VAR currentB =
MAX ( Data[Column B] )
RETURN
SWITCH (
TRUE (),
COUNTROWS ( VALUES ( Data[Column A] ) ) = 1
&& CALCULATE (
COUNTROWS ( VALUES ( Data[Column B] ) ),
FILTER ( ALL ( Data ), Data[Column A] = currentA )
) = 1
&& CALCULATE (
COUNTROWS ( data ),
FILTER ( ALL ( Data ), Data[Column B] = currentB )
) = 1, "1-1",
COUNTROWS ( VALUES ( Data[Column A] ) ) = 1
&& CALCULATE (
COUNTROWS ( VALUES ( Data[Column B] ) ),
FILTER ( ALL ( Data ), Data[Column A] = currentA )
) > 1, "1-M",
COUNTROWS ( VALUES ( Data[Column A] ) ) = 1
&& CALCULATE (
COUNTROWS ( VALUES ( Data[Column B] ) ),
FILTER ( ALL ( Data ), Data[Column A] = currentA )
) = 1
&& CALCULATE (
COUNTROWS ( data ),
FILTER ( ALL ( Data ), Data[Column B] = currentB )
) > 1, "M-1"
)
Hola
Si desea verificar la creación de una medida, consulte la imagen a continuación y el archivo pbix adjunto.
Category measure: =
VAR currentA =
MAX ( Data[Column A] )
VAR currentB =
MAX ( Data[Column B] )
RETURN
SWITCH (
TRUE (),
COUNTROWS ( VALUES ( Data[Column A] ) ) = 1
&& CALCULATE (
COUNTROWS ( VALUES ( Data[Column B] ) ),
FILTER ( ALL ( Data ), Data[Column A] = currentA )
) = 1
&& CALCULATE (
COUNTROWS ( data ),
FILTER ( ALL ( Data ), Data[Column B] = currentB )
) = 1, "1-1",
COUNTROWS ( VALUES ( Data[Column A] ) ) = 1
&& CALCULATE (
COUNTROWS ( VALUES ( Data[Column B] ) ),
FILTER ( ALL ( Data ), Data[Column A] = currentA )
) > 1, "1-M",
COUNTROWS ( VALUES ( Data[Column A] ) ) = 1
&& CALCULATE (
COUNTROWS ( VALUES ( Data[Column B] ) ),
FILTER ( ALL ( Data ), Data[Column A] = currentA )
) = 1
&& CALCULATE (
COUNTROWS ( data ),
FILTER ( ALL ( Data ), Data[Column B] = currentB )
) > 1, "M-1"
)
Estimado @Jihwan_Kim ,
¡Muchas gracias! Funciona perfectamente bien.
Deseo agregar otra regla donde Columna A = "NA", luego la categoría = Blank().
Agregué esta lógica como 1ª regla:
@kilala , Intenta tener una nueva columna como
Nueva columna =
var _1 = countx(filter(Table, [Columna A] = anterior([Columna A]) ), [Columna B])
var _2 = countx(filter(Table, [Columna B] = anterior([Columna B]) ), [Columna A])
devolución
Switch(True() ,
_1 =1 && _2 =1, "1-1" ,
_1 =1 && _2 >1, "1-M" ,
_1 >1 && _2 =1, "M-1" ,
"M-M"
)
¡Hola, tanques para la respuesta! Desafortunadamente, no puedo crear una nueva columna mientras me conecto a datos en vivo. Sólo soy capaz de crear medidas.
Sin embargo, probé su enfoque, pero un error se muestra aquí:
var _1 = countx(filter(Table, [Columna A] = anterior([Columna A]) ), [Columna B])
mensaje de error:
El parámetro no es el tipo correcto; No se puede encontrar el nombre [Columna A]
por favor ayuda!