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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

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
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors