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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Categorizar comparando 2 columnas

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 AColumna BCategoría
A1B11-1
A2B21-M
A2B31-M
A3B4M-1
A4B4M-1

¿Algún consejo/ayuda sobre cómo puedo lograr este objetivo? ¡Muchas gracias!

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Hola

Si desea verificar la creación de una medida, consulte la imagen a continuación y el archivo pbix adjunto.

Picture1.png

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"
    )

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Hola

Si desea verificar la creación de una medida, consulte la imagen a continuación y el archivo pbix adjunto.

Picture1.png

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:

CALCULAR (
FILTRO ( TODO ( Datos ), Fecha[ColumnA] = currentA )
) = "NA",Espacio en blanco()

Sin embargo, después de que ocurra un error, no estoy seguro de por qué.
kilala_0-1648056050374.png

Syndicate_Admin
Administrator
Administrator

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

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

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.