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
John117
New Member

Suma con filtro y tabla cruzada

Tengo 2 tablas, una con la fecha, el nombre del cliente y las ventas brutas y otra tabla que es una selección del cliente más relevante por fecha, como esta:

Tabla 1

FechaClienteVentas brutas
01/06/2020X300
01/06/2020Y200
01/07/2020Y100
01/07/2020Z150

Tabla 2

FechaCliente
01/06/2020X
01/07/2020Y
01/07/2020X

Necesito calcular las ventas totales de los clientes más relevantes, pero no funciona. Estoy usando esta fórmula:

Total gross á calculate(sum(Table1[Gross Sales]), filter(Table1, Table1[customer]-values(Table2[customer])))

El mensaje de error dice 'MdxScript(Model) (4,102) Error de cálculo en medida: se proporcionó una tabla de varios valores donde se esperaba un único valor'

¿Alguien podría ayudarme? Soy principiante en Power BI

3 REPLIES 3
Icey
Community Support
Community Support

Hola @John117 ,

VALUES() devuelve una tabla de una sola columna o una tabla de las mismas columnas. En su escenario, VALUES(Table2[customer]) devuelve una tabla con una sola columna. El problema es que una columna no puede ser igual a una tabla. Puede utilizar IN en lugar de "a".


En Crea una condición OR lógica entre cada fila que se compara con una tabla. Nota: la sintaxis del constructor de tabla utiliza llaves. 'Producto'[Color] EN 'Rojo', "Azul", "Negro"


La fórmula se puede modificar de la siguiente manera:

Total gross 2 =
CALCULATE (
    SUM ( Table1[Gross Sales] ),
    FILTER ( Table1, Table1[customer] IN VALUES ( Table2[customer] ) )
)

El resultado se muestra en la siguiente figura:

sales.PNG

La fórmula anterior se limita a filtrar los nombres de los clientes. Si también desea filtrar por fecha y nombre de cliente al mismo tiempo. Puede escribir una columna calculada o una medida.

Puede escribir la columna calculada de la siguiente manera:

Total gross =
CALCULATE (
    SUM ( Table1[Gross Sales] ),
    FILTER (
        Table1,
        Table1[customer] = 'Table2'[customer]
            && Table1[Date] = Table2[Date]
    )
)

El resultado se muestra en la siguiente figura:

sales1.png

O puede escribir su medida de esta manera:

Total gross3 = 
VAR table3 =
    ADDCOLUMNS (
        Table2,
        "Total gross4", CALCULATE (
            SUM ( Table1[Gross Sales] ),
            FILTER (
                Table1,
                Table1[Customer] = Table2[customer]
                    && Table1[Date] = Table2[Date]
            )
        )
    )
RETURN
    SUMX ( table3, [Total gross4] )

El resultado se muestra en la siguiente figura:

sales2.png

Puede consultar más detalles desde aquí.

Saludos

Icey

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Ahora está funcionando. Gracias tan lodo, @Icey !

lbendlin
Super User
Super User

Sí, VALUES() devuelve el valor de "X,Y" de la tabla 2. ¿No quieres filtrar por fecha? ¿Y corregir los datos de muestra en la Tabla 2?

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.