Reply
Syndicate_Admin
Administrator
Administrator
Syndicated - Inbound

Cómo concatenar el valor de varias columnas para usarlo en una medida

Source Community: Power BI | Source Author Name: jamuka

Hola a todos,

Perdón por el tema, pero no sé cómo resumir mi pregunta.

Tengo licencia de Power BI Pro. Tengo un informe de ventas que tiene 53 millones de filas, el tamaño del archivo .pbix es de 1,2 GB. De momento no puedo publicarlo.

Para reducir el tamaño de la misma, utilicé VertiPaq Analyzer y dividí la columna más grande (ID de factura) en tres columnas como

Factura ID.1, Factura ID.2 y Factura ID.3

El tipo de datos de la factura ID.1 es texto y los demás son números enteros.

Ahora el tamaño de mi archivo es de 0,8 GB. para poder publicarlo.

Pero tengo varias medidas que usan la columna ID de factura y tengo que actualizar mis medidas.

Supongo que debería usar summarize o summarizecolumns, pero no tengo idea de cómo usarlas.

por ejemplo, las siguientes medidas son para contar distintos ID de factura y resumir el importe de la factura.

¿Cómo debo actualizarlos?

Total Invoice = 
CALCULATE(
DISTINCTCOUNT('Sales'[Invoice ID])

Invoice Amount =
SUMX (
    VALUES ( 'Sales'[Invoice ID]  ),
    CALCULATE ( SELECTEDVALUE ( 'Sales'[Sales Amount] ) )

Atentamente

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Source Community: Power BI | Source Author Name: jamuka
Syndicated - Inbound

Estimados @Fowmy,

Averigüé cómo actualizar mi columna calculada en función de sus respuestas. Gracias por su ayuda.

para la columna calculada utilicé

Unique Category Count = 
IF(Sales[Category Count] = 1,
CALCULATE(DISTINCTCOUNT(Sales[Category]),
ALLEXCEPT( Sales, Sales[Invoice ID.1],Sales[Invoice ID.2],Sales[Invoice ID.3])),0)

y a mi medida

Uniqe Category Invoices = 
CALCULATE(
   DISTINCTCOUNT(Sales[Category]),
   ALLEXCEPT(Sales, Sales[Invoice ID.1],Sales[Invoice ID.2],Sales[Invoice ID.3],'Date'[Year Month]))

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Source Community: Power BI | Source Author Name: jamuka
Syndicated - Inbound

Estimados @Fowmy,

Averigüé cómo actualizar mi columna calculada en función de sus respuestas. Gracias por su ayuda.

para la columna calculada utilicé

Unique Category Count = 
IF(Sales[Category Count] = 1,
CALCULATE(DISTINCTCOUNT(Sales[Category]),
ALLEXCEPT( Sales, Sales[Invoice ID.1],Sales[Invoice ID.2],Sales[Invoice ID.3])),0)

y a mi medida

Uniqe Category Invoices = 
CALCULATE(
   DISTINCTCOUNT(Sales[Category]),
   ALLEXCEPT(Sales, Sales[Invoice ID.1],Sales[Invoice ID.2],Sales[Invoice ID.3],'Date'[Year Month]))
Syndicate_Admin
Administrator
Administrator

Source Community: Power BI | Source Author Name: Fowmy
Syndicated - Inbound

@jamuka

Total Invoice = 
COUNTROWS(
    SUMMARIZE(Sales ,Sales[Invoice ID.1] ,Sales[Invoice ID.2] ,Sales[Invoice ID.3] )
)

Invoice Amount =
SUMX (
    SUMMARIZE(Sales ,Sales[Invoice ID.1] ,Sales[Invoice ID.2] ,Sales[Invoice ID.3] ),
    CALCULATE ( SUM(Sales[Sales Amount] ) )
)



Source Community: Power BI | Source Author Name: jamuka
Syndicated - Inbound

Estimados @Fowmy

Perdón por la respuesta tardía. Actualicé mis medidas y funcionó, pero tengo varias medidas en las que uso ALLEXCEPT pero no pude hacer que mi fórmula funcionara.

A continuación puedes encontrar una de las medidas. También tengo una pregunta sobre su primera fórmula, en lugar de DISTINCTCOUNT usó COUNTROWS, ¿son lo mismo? En mi informe, el ID de factura no es único, por lo que pensé que debería usar DISTINCTCOUNT. Pero COUNTROWS también funciona.

Unique Category Count = 
IF(Sales[Category Count] = 1,
CALCULATE(
DISTINCTCOUNT(Sales[Category]),
ALLEXCEPT(Sales,Sales[Invoice ID])),0
)

saludos

Source Community: Power BI | Source Author Name: Fowmy
Syndicated - Inbound

@jamuka

Puede modificar la medida de la siguiente manera:

Unique Category Count =
IF (
    Sales[Category Count] = 1,
    CALCULATE (
        DISTINCTCOUNT ( Sales[Category] ),
        SUMMARIZE (
            Sales,
            Sales[Invoice ID.1],
            Sales[Invoice ID.2],
            Sales[Invoice ID.3]
        ),
        REMOVEFILTERS ( Sales )
    )
)


Con respecto a su pregunta, CONTROWS se puede usar para contar una columna o tabla distinta, usé SUMMARIZE que obtiene la combinación distinta de los números de factura de tres columnas y cuenta.

Source Community: Power BI | Source Author Name: jamuka
Syndicated - Inbound

gracias, se me olvidaba que no creamos una columna real sino virtual.

También me doy cuenta de que cometí un error en mi última respuesta, la fórmula que escribí es para una columna calculada, cuando creo una columna con su fórmula, muestra el mismo valor en todas las celdas.

También ahí tengo fórmulas donde hay dos columnas y RemoveFilters no funcionó con dos columnas, me sale un mensaje que dice

"No se permiten varios argumentos de tabla en la función ALL/ALLNOBLANKROW/REMOVEFILTERS".

Uniqe Category Invoices = 
CALCULATE(
   DISTINCTCOUNT(Sales[Category]),
   ALLEXCEPT(Sales,Sales[Invoice ID],'Date'[Year Month])
   )

Lamento la confusión.

avatar user

Helpful resources

Announcements
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!

FebPBI_Carousel

Power BI Monthly Update - February 2025

Check out the February 2025 Power BI update to learn about new features.

Feb2025 NL Carousel

Fabric Community Update - February 2025

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

Top Solution Authors (Last Month)
Top Kudoed Authors (Last Month)