cancel
Showing results for 
Search instead for 
Did you mean: 
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
Memorable Member
Memorable Member

Hola @tatac1412 ,

Puede intentar crear medidas separadas para cada variable.

 

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

 

(Usando Google Translate)


If this post helps, then please consider accepting it as the solution to help other members find it more quickly.

Helpful resources

Announcements
Carousel_PBI_Wave1

2023 Release Wave 1 Plans

Power BI release plans for 2023 release wave 1 describes all new features releasing from April 2023 through September 2023.

Power BI Summit Carousel 2

Global Power BI Training

Make sure you register today for the Power BI Summit 2023. Don't miss all of the great sessions and speakers!

Thank you 2022 Review

2022 Monthly Feature Releases

We had a great 2022 with a ton of feature releases to help you drive a data culture.

Top Solution Authors
Top Kudoed Authors