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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
PBlearner27
Helper I
Helper I

¡Ayuda de fórmula Dax! filtro y varios elementos dentro de la cadena

Hola a todos,

  • Tengo una tabla (Tabla 1) con los siguientes datos. Tenga en cuenta: La columna "Grupo" se ha creado mediante la fusión (separado por comas) de tres columnas diferentes (indicadas con los tres colores diferentes).

PBlearner27_0-1598180373008.png

  • Tengo otra tabla (Tabla 2) como se indica a continuación:

PBlearner27_1-1598181058702.png

  • Necesito una fórmula DAX para crear la columna delineada en rojo - "Suma de precio". La fórmula DAX debe tener en cuenta lo siguiente:
    • Debe incluir los filtros Shop-A y Cargos-ALL, pero excluyendo el Descuento (en la Tabla 1).

(Tenga en cuenta:No puedo tener el formato de las tablas cambiado / No puedo utilizar otros tipos de imágenes para lograr lo que estoy tratando de hacer; He comprobado todas estas opciones, necesito que sea exactamente como he descrito anteriormente, gracias!!)

Cualquier ayuda sería muy apreciada - gracias!

1 ACCEPTED SOLUTION

OK, esto debería funcionar, he ajustado algunas cosas para que funcione mejor:

Column = 
    VAR __Item = [Shop A]
    VAR __Comma = FIND(",",__Item,,BLANK())
    VAR __First = IF(ISBLANK(__Comma),__Item,LEFT(__Item,__Comma - 1))
    VAR __Second = IF(ISBLANK(__Comma),BLANK(),RIGHT(__Item,LEN(__Item) - __Comma -1))
    VAR __Table = 
        ADDCOLUMNS(
            FILTER('Table (9)',[Charges]<>"Discount" && [Shop] = "Shop A"),
            "__Include",IF(FIND(__First,[Group],,0) > 0 && FIND(__Second,[Group],,0) > 0,1,0)
        )
    VAR __Sum = SUMX(FILTER(__Table,[__Include]=1),[Price])
RETURN
    IF(__Item = "",BLANK(),IF(ISBLANK(__Sum),0,__Sum))

CONTAINSSTRING me estaba causando algo de dolor, así que fui con FIND en su lugar.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

View solution in original post

6 REPLIES 6
lbendlin
Super User
Super User

Reconociendo su nota voy a ignorarlo y decirle cómo resolvería esto.

Agregue una transformación que divida la columna de grupo y no especifique "en filas". Terminará con nuevas columnas Group.1, Group.2 y Group.3 que se podrán usar inmediatamente para el resultado deseado de Table2 (a través de medidas que apliquen la lógica.

La única parte difícil será agregar las filas en blanco.

@lbendlin Gracias por su respuesta, sin embargo, para mi propósito necesito usar una columna calculada, no puedo usar una medida.

He proporcionado un ejemplo muy simplificado de lo que estoy tratando de lograr - por lo tanto, puede que no sea muy claro en cuanto a por qué necesito específicamente utilizar una columna calculada.

¿No es posible hacerlo con una columna calculada?

@PBlearner27 - Bueno, tiendo a estar de acuerdo con @lbendlin pero si estás muerto en lo que quieres, puedes hacerlo así:

Column = 
    VAR __Item = [Shop A]
    VAR __Comma = FIND(",",__Item,,BLANK())
    VAR __First = IF(ISBLANK(__Comma),__Item,LEFT(__Item,__Comma - 1))
    VAR __Second = IF(ISBLANK(__Comma),BLANK(),RIGHT(__Item,LEN(__Item) - __Comma -1))
    VAR __Table = FILTER('Table (9)',CONTAINSSTRING([Group],__First) = TRUE() && CONTAINSSTRING([Group],__Second) = TRUE() && [Charges]<>"Discount")
RETURN
    IF(__Item = "",BLANK(),SUMX(__Table,[Price]))

He adjuntado un PBIX debajo de mi sig. Quieres las Tablas 9 y 10.

La próxima vez, por favor publique sus datos como texto en una tabla para que no tengamos que volver a escribir todo. Gracias. Por favor, consulte este post sobre cómo obtener su pregunta respondida rápidamente: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490

Las partes más importantes son:
1. Datos de muestra como texto, utilice la herramienta de tabla en la barra de edición
2. Salida esperada de los datos de muestra
3. Explicación en palabras de cómo obtener de 1. a 2.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

@Greg_Deckler Simplemente no puedo agradecerte lo suficiente por esto!! Estoy muy agradecido por su ayuda, funciona como un encanto, muchas gracias!

Hice un cambio menor agregando un filtro para "Tienda A" como se resalta en la fórmula siguiente.


Antes de que pueda marcarlo como una solución, hay un problema menor que no puedo averiguar:

  • Las filas resaltadas en amarillo deben devolver valores de 0 euros ya que estos registros no existen en la tabla filtrada - no estoy muy seguro de cómo modificar la fórmula para eso, por favor, ¿puede ayudar con esto?

PBlearner27_0-1598207335040.png

Gracias por su tiempo - much appreciated!!

OK, esto debería funcionar, he ajustado algunas cosas para que funcione mejor:

Column = 
    VAR __Item = [Shop A]
    VAR __Comma = FIND(",",__Item,,BLANK())
    VAR __First = IF(ISBLANK(__Comma),__Item,LEFT(__Item,__Comma - 1))
    VAR __Second = IF(ISBLANK(__Comma),BLANK(),RIGHT(__Item,LEN(__Item) - __Comma -1))
    VAR __Table = 
        ADDCOLUMNS(
            FILTER('Table (9)',[Charges]<>"Discount" && [Shop] = "Shop A"),
            "__Include",IF(FIND(__First,[Group],,0) > 0 && FIND(__Second,[Group],,0) > 0,1,0)
        )
    VAR __Sum = SUMX(FILTER(__Table,[__Include]=1),[Price])
RETURN
    IF(__Item = "",BLANK(),IF(ISBLANK(__Sum),0,__Sum))

CONTAINSSTRING me estaba causando algo de dolor, así que fui con FIND en su lugar.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

@Greg_Deckler Estoy completamente impresionado!! Muchas gracias por su ayuda Greg - esto me ha ahorrado un montón de problemas y he aprendido algo nuevo y muy útil!
🙂 de Navidad

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

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