Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
5 years ago
Solved

DAX

Hola

Necesito calcular la suma de $ cantidades en la columna X basada en la condición GroupBy en la columna Y, Z.

Ex:

X Y Z

$5 POR IND

$6 POR US

$7 B US

$8 C CAN

$4 C EN

$6 B IND

  • Hay @vikramv ,

    De acuerdo con su descripción, cree la siguiente tabla virtual.

    Out_result =
    SUMMARIZE (
        ABC,
        ABC[GL Description],
        "A",
            IF (
                NOT ISBLANK (
                    CALCULATE (
                        SUM ( ABC[YTD] ),
                        FILTER (
                            ALL ( ABC ),
                            MAX ( ABC[GL Description] ) = ABC[GL Description]
                                && ABC[Group] = "CA"
                        )
                    )
                ),
                CALCULATE (
                    SUM ( ABC[YTD] ),
                    FILTER (
                        ALL ( ABC ),
                        MAX ( ABC[GL Description] ) = ABC[GL Description]
                            && ABC[Group] = "CA"
                    )
                ),
                0
            )
    )

    vhenrykmstf_0-1631157600693.png


    Si el problema aún no se resuelve, proporcione información detallada sobre el error y hágamelo saber de inmediato. Esperamos su respuesta.


    Saludos
    Henrio


    Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

10 Replies

  • @vikramv , El resultado esperado no está claro

    ejemplo

    calculate(sum(Table[X]), filter(Table, Table[Y] = "A" && Table[Z] = "IND" ))

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Lo sentimos, permítanme compartir claramente el resultado esperado y la estructura de la tabla actual

      La tabla "ABC"

      Columna AColumna BYTD

      Descripción de GL

      Grupo

      US$ 40

      ConversiónGUSTAR
      US$ 30CosourcingPD
      US$ 80HonorariosGUSTAR
      US$ 50ConversiónYo
      US$ 10Cosourcing

      PERO

      US$ 20Conversión

      GUSTAR

      El resultado debe ser el siguiente solo para el grupo "CA"

      Descripción de GLYTD
      ConversiónUS$ 60
      CosourcingUS$ 0
      HonorariosUS$ 80

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        @vikramv

        Me perdí esta respuesta.

        Measure 2 = CALCULATE(sum(ABC[YTD]),FILTER(ABC,ABC[Group]="CA"))+0

        1.PNG

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Hola

      El resultado esperado es:

      Suma de la columna X, agrupar por filas en las columnas Y y Z

      ¡Gracias!

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        @vikramv

        ¿Los datos de muestra o el resultado esperado en su primera publicación? No le gusta que la Y y la Z se puedan agrupar.

        tal vez puedas probar

        calculate(suma(x), allexcept(table, y,z))

  • Hola

    Estoy tratando de calcular la suma basándome en columnas de dos tablas diferentes (Actuales y MYR). Estoy obteniendo la salida correcta para YTDActuals. Pero, para "YTD MYR" no es así. Utilicé la siguiente fórmula para YTD Actuals:

    YTD Actuals = CALCULATE(SUMX(Actuals,Actuals[Doc Amt (USD)])). Pero, cuando estoy usando una fórmula similar con referencia a la tabla "MYR" y la columna específica en la tabla, está dando la suma total (igual para todas las filas) en lugar de dar para cada categoría de fila. Cualquier ayuda es muy apreciada.
    Nota: Asigné las tablas Actuals & MYR en función de columnas comunes.

    vikramv_0-1631123559235.png

  • Hay @vikramv ,

    De acuerdo con su descripción, cree la siguiente tabla virtual.

    Out_result =
    SUMMARIZE (
        ABC,
        ABC[GL Description],
        "A",
            IF (
                NOT ISBLANK (
                    CALCULATE (
                        SUM ( ABC[YTD] ),
                        FILTER (
                            ALL ( ABC ),
                            MAX ( ABC[GL Description] ) = ABC[GL Description]
                                && ABC[Group] = "CA"
                        )
                    )
                ),
                CALCULATE (
                    SUM ( ABC[YTD] ),
                    FILTER (
                        ALL ( ABC ),
                        MAX ( ABC[GL Description] ) = ABC[GL Description]
                            && ABC[Group] = "CA"
                    )
                ),
                0
            )
    )

    vhenrykmstf_0-1631157600693.png


    Si el problema aún no se resuelve, proporcione información detallada sobre el error y hágamelo saber de inmediato. Esperamos su respuesta.


    Saludos
    Henrio


    Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Gracias por su ayuda en esto. Sin embargo, cuando se usa la fórmula de cálculo como la anterior, obtengo un error "La expresión se refiere a varias columnas. No se pueden convertir varias columnas en un valor escalar".

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        Hay @vikramv ,

        ¿El formato se utiliza correctamente en la fórmula que ha creado? Durante mis pruebas, no se encontró este problema. ¿Se refirió al archivo pbix que proporcioné? Si todavía hay confusión, proporcione capturas de pantalla de los resultados de las pruebas pertinentes.


        Esperamos su respuesta.


        Saludos
        Henrio


        Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.