cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
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
Highlighted
Community Champion
Community Champion

Re: Suma con filtro y tabla cruzada

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?

Highlighted
Community Support
Community Support

Re: Suma con filtro y tabla cruzada

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.

Highlighted
New Member

Re: Suma con filtro y tabla cruzada

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

Helpful resources

Announcements
August 2020 Community Challenge: Can You Solve These?

August 2020 Community Challenge: Can You Solve These?

We're excited to announce our first cross-community 'Can You Solve These?' challenge!

Community Blog

Community Blog

Visit our Community Blog for articles, guides, and information created by fellow community members.

Upcoming Events

Upcoming Events

Wondering what events you could join or have an event to promote yourself? Check out our Upcoming Events.

Get Ready for Power BI Dev Camp

Get Ready for Power BI Dev Camp

We are thrilled to announce we will begin running a monthly webinar series named Power BI Dev Camp.