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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
tatac1412
Helper I
Helper I

Error en formula DAX

 
Hola agradecería la ayuda, tengo la siguiente formula  y me sale el error de "La expresión hace referencia a varias columnas. No se pueden convertir varias columnas a un valor escalar.", me pueden ayudar porfa. Gracias
 
Medida 2 =
    VAR Mujeres= Filter('CÁNCER','CÁNCER'[Órganos] IN { "Mama", "Cervix" })
     var Hombres= filter('CÁNCER','CÁNCER'[Órganos] IN { "Prostata" })
      Var DemasOrganos = filter('CÁNCER','CÁNCER'[Órganos] IN { "Otros", "Estomago","Colorrectal","Pulmón","Melanoma","Hodgkin","No Hodgkin","Leucemia linfoide aguda","Leucemia mieloide aguda"})
var PoblacionMujeres = if(mujeres, SUMX(FILTER('CÁNCER BD AFILIADOS ACTIVOS','CÁNCER BD AFILIADOS ACTIVOS'=[Sexo]= "F"),'CÁNCER BD AFILIADOS ACTIVOS'[ Total Afiliados]))
var PoblacionHombres = if(Hombres, SUMX(FILTER('CÁNCER BD AFILIADOS ACTIVOS','CÁNCER BD AFILIADOS ACTIVOS'=[Sexo]= "M"),'CÁNCER BD AFILIADOS ACTIVOS'[ Total Afiliados]))
var PoblacionTotal = if(DemasOrganos, SUM('CÁNCER BD AFILIADOS ACTIVOS'[ Total Afiliados]))
Var Incidencia2= IF(Mujeres,count('CÁNCER'[TieneTNM])/PoblacionMujeres*100000,if(Hombres,count('CÁNCER'[TieneTNM])/PoblacionHombres*100000,if(DemasOrganos,count('CÁNCER'[TieneTNM])/PoblacionTotal*100000)))
RETURN
Incidencia2
1 ACCEPTED SOLUTION

@tatac1412 
Please try

Medida 2 =
VAR Mujeres =
    FILTER ( 'CÁNCER', 'CÁNCER'[Órganos] IN { "Mama", "Cervix" } )
VAR Hombres =
    FILTER ( 'CÁNCER', 'CÁNCER'[Órganos] IN { "Prostata" } )
VAR DemasOrganos =
    FILTER (
        'CÁNCER',
        'CÁNCER'[Órganos]
            IN {
            "Otros",
            "Estomago",
            "Colorrectal",
            "Pulmón",
            "Melanoma",
            "Hodgkin",
            "No Hodgkin",
            "Leucemia linfoide aguda",
            "Leucemia mieloide aguda"
        }
    )
VAR PoblacionMujeres =
    IF (
        NOT ISEMPTY ( mujeres ),
        SUMX (
            FILTER (
                'CÁNCER BD AFILIADOS ACTIVOS',
                'CÁNCER BD AFILIADOS ACTIVOS'[Sexo] = "F"
            ),
            'CÁNCER BD AFILIADOS ACTIVOS'[ Total Afiliados]
        )
    )
VAR PoblacionHombres =
    IF (
        NOT ISEMPTY ( Hombres ),
        SUMX (
            FILTER (
                'CÁNCER BD AFILIADOS ACTIVOS',
                'CÁNCER BD AFILIADOS ACTIVOS'[Sexo] = "M"
            ),
            'CÁNCER BD AFILIADOS ACTIVOS'[ Total Afiliados]
        )
    )
VAR PoblacionTotal =
    IF (
        NOT ISEMPTY ( DemasOrganos ),
        SUM ( 'CÁNCER BD AFILIADOS ACTIVOS'[ Total Afiliados] )
    )
VAR Incidencia2 =
    IF (
        NOT ISEMPTY ( Mujeres ),
        COUNT ( 'CÁNCER'[TieneTNM] ) / PoblacionMujeres * 100000,
        IF (
            NOT ISEMPTY ( Hombres ),
            COUNT ( 'CÁNCER'[TieneTNM] ) / PoblacionHombres * 100000,
            IF (
                NOT ISEMPTY ( DemasOrganos ),
                COUNT ( 'CÁNCER'[TieneTNM] ) / PoblacionTotal * 100000
            )
        )
    )
RETURN
    Incidencia2

View solution in original post

9 REPLIES 9
tamerj1
Super User
Super User

Hi @tatac1412 

It is not allowed to place a table as an IF statement argument. The first argument need to be boolean (TRUE/FALSE) argument. Do you mean to say:

Medida 2 =
VAR Mujeres =
    FILTER ( 'CÁNCER', 'CÁNCER'[Órganos] IN { "Mama", "Cervix" } )
VAR Hombres =
    FILTER ( 'CÁNCER', 'CÁNCER'[Órganos] IN { "Prostata" } )
VAR DemasOrganos =
    FILTER (
        'CÁNCER',
        'CÁNCER'[Órganos]
            IN {
            "Otros",
            "Estomago",
            "Colorrectal",
            "Pulmón",
            "Melanoma",
            "Hodgkin",
            "No Hodgkin",
            "Leucemia linfoide aguda",
            "Leucemia mieloide aguda"
        }
    )
VAR PoblacionMujeres =
    IF (
        NOT ISEMPTY ( mujeres ),
        SUMX (
            FILTER (
                'CÁNCER BD AFILIADOS ACTIVOS',
                'CÁNCER BD AFILIADOS ACTIVOS' = [Sexo] = "F"
            ),
            'CÁNCER BD AFILIADOS ACTIVOS'[ Total Afiliados]
        )
    )
VAR PoblacionHombres =
    IF (
        NOT ISEMPTY ( Hombres ),
        SUMX (
            FILTER (
                'CÁNCER BD AFILIADOS ACTIVOS',
                'CÁNCER BD AFILIADOS ACTIVOS' = [Sexo] = "M"
            ),
            'CÁNCER BD AFILIADOS ACTIVOS'[ Total Afiliados]
        )
    )
VAR PoblacionTotal =
    IF (
        NOT ISEMPTY ( DemasOrganos ),
        SUM ( 'CÁNCER BD AFILIADOS ACTIVOS'[ Total Afiliados] )
    )
VAR Incidencia2 =
    IF (
        NOT ISEMPTY ( Mujeres ),
        COUNT ( 'CÁNCER'[TieneTNM] ) / PoblacionMujeres * 100000,
        IF (
            NOT ISEMPTY ( Hombres ),
            COUNT ( 'CÁNCER'[TieneTNM] ) / PoblacionHombres * 100000,
            IF (
                NOT ISEMPTY ( DemasOrganos ),
                COUNT ( 'CÁNCER'[TieneTNM] ) / PoblacionTotal * 100000
            )
        )
    )
RETURN
    Incidencia2

Hola, acabo de ejecutar la formula que me pasaste y sigue saliendo el mismo error de "La expresión hace referencia a varias columnas. No se pueden convertir varias columnas a un valor escalar". Entiendo que colocaste "NOT ISEMPTY" después del IF, pero  aún así no me da. Agradezco si me puedes seguir ayudando

@tatac1412 
Please try

Medida 2 =
VAR Mujeres =
    FILTER ( 'CÁNCER', 'CÁNCER'[Órganos] IN { "Mama", "Cervix" } )
VAR Hombres =
    FILTER ( 'CÁNCER', 'CÁNCER'[Órganos] IN { "Prostata" } )
VAR DemasOrganos =
    FILTER (
        'CÁNCER',
        'CÁNCER'[Órganos]
            IN {
            "Otros",
            "Estomago",
            "Colorrectal",
            "Pulmón",
            "Melanoma",
            "Hodgkin",
            "No Hodgkin",
            "Leucemia linfoide aguda",
            "Leucemia mieloide aguda"
        }
    )
VAR PoblacionMujeres =
    IF (
        NOT ISEMPTY ( mujeres ),
        SUMX (
            FILTER (
                'CÁNCER BD AFILIADOS ACTIVOS',
                'CÁNCER BD AFILIADOS ACTIVOS'[Sexo] = "F"
            ),
            'CÁNCER BD AFILIADOS ACTIVOS'[ Total Afiliados]
        )
    )
VAR PoblacionHombres =
    IF (
        NOT ISEMPTY ( Hombres ),
        SUMX (
            FILTER (
                'CÁNCER BD AFILIADOS ACTIVOS',
                'CÁNCER BD AFILIADOS ACTIVOS'[Sexo] = "M"
            ),
            'CÁNCER BD AFILIADOS ACTIVOS'[ Total Afiliados]
        )
    )
VAR PoblacionTotal =
    IF (
        NOT ISEMPTY ( DemasOrganos ),
        SUM ( 'CÁNCER BD AFILIADOS ACTIVOS'[ Total Afiliados] )
    )
VAR Incidencia2 =
    IF (
        NOT ISEMPTY ( Mujeres ),
        COUNT ( 'CÁNCER'[TieneTNM] ) / PoblacionMujeres * 100000,
        IF (
            NOT ISEMPTY ( Hombres ),
            COUNT ( 'CÁNCER'[TieneTNM] ) / PoblacionHombres * 100000,
            IF (
                NOT ISEMPTY ( DemasOrganos ),
                COUNT ( 'CÁNCER'[TieneTNM] ) / PoblacionTotal * 100000
            )
        )
    )
RETURN
    Incidencia2

 Holaaa buenos dias,
 
será que porfa también me ayudas por favor con esta médida me sale el error "La expresión hace referencia a varias columnas. No se pueden convertir varias columnas a un valor escalar" porfa me ayudas Gracias
 
ProporHemoSev<18 =
Var var31= filtro ('EHC','EHC'[V31EsquemaTratamientoActual] IN "1" "2" "4" })
Var Numerador1 = si NO ESTÁ VACÍO ( var31 ), cuentax ('EHC', var31), "" )
var Numerador = si NO ESTÁ VACÍO ( var31 ), cuenta ('EHC'[AñoCorte]) - Numerador1, "" )
var denominador= cuenta ('EHC'[AñoCorte])
Var ProporHemosev =   si NO ESTÁ VACÍO ( var31 ), divide ( Numerador,denominador* 100 ), "" )
volver ProporHemosev

@tatac1412 

Sure. Would you please place the code in English? Thank you

Sure!! Thanks
 
ProporHemoSev<18 =
Var var31= filter ('EHC','EHC'[V31actuallytreatment] IN "1" "2" "4" })
Var Numerator1 = IF( NOT ISEMPTY ( var31 ), count('EHC', var31), "" )
var Numeratorsi ( NOT ISEMPTY  ( var31 ), count ('EHC'[Year]) - Numerator1, "" )
var denominator= count ('EHC'[year])
Var ProporHemosev =   if ( NOT ISEMPTYvar31 ), divide ( Numerator,denominator* 100 ), "" )
Return ProporHemosev

@tatac1412 

please try

ProporHemoSev<18 =
VAR var31 =
FILTER ( 'EHC', 'EHC'[V31actuallytreatment] IN { "1", "2", "4" } )
VAR Numerator1 =
COUNTX ( var31, 'EHC'[Year] )
VAR Numerator =
IF ( NOT ISEMPTY ( var31 ), COUNT ( 'EHC'[Year] ) - Numerator1 )
VAR denominator =
COUNT ( 'EHC'[year] )
VAR ProporHemosev =
IF ( NOT ISEMPTY ( var31 ), DIVIDE ( Numerator, denominator * 100 ) )
RETURN
ProporHemosev

Mil gracias me sirvió !!!!!

djurecicK2
Super User
Super User

Hola @tatac1412 ,

Puede intentar crear medidas separadas para cada variable.

 

Entonces puedes ver cuál está causando el problema.

 

(Usando Google Translate)

Helpful resources

Announcements
Sept PBI Carousel

Power BI Monthly Update - September 2024

Check out the September 2024 Power BI update to learn about new features.

September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

Sept NL Carousel

Fabric Community Update - September 2024

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