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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

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
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.