Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
3 years ago
Solved

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
  • tamerj1's avatar
    tamerj1
    3 years ago

    Anonymous 
    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

9 Replies

  • Hola Anonymous ,

    Puede intentar crear medidas separadas para cada variable.

     

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

     

    (Usando Google Translate)

  • tamerj1's avatar
    tamerj1
    Community Champion

    Hi Anonymous 

    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
    • Anonymous's avatar
      Anonymous
      Not applicable

      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

      • tamerj1's avatar
        tamerj1
        Community Champion

        Anonymous 
        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