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

Get certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register 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
November Carousel

Fabric Community Update - November 2024

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

Live Sessions with Fabric DB

Be one of the first to start using Fabric Databases

Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.

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! Early Bird pricing ends December 9th.

Nov PBI Update Carousel

Power BI Monthly Update - November 2024

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