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

Learn from the best! Meet the four finalists headed to the FINALS of the Power BI Dataviz World Championships! Register now

Reply
Syndicate_Admin
Administrator
Administrator

Cuente y visualice celdas de datos que contienen varios valores (productos)

Hola

Acabo de empezar a usar Power BI y pido amablemente ayuda con respecto a cómo visualizar y contar celdas que contienen varios valores (productos).

Tengo una tabla que muestra diferentes proyectos y los productos que se han vendido en este proyecto. Además, la tabla contiene muchas otras columnas, como, por ejemplo, la región. La columna con los productos vendidos contiene celdas con un solo producto y celdas que contienen varios productos separados por un punto y coma (vea el ejemplo a continuación)

Me gustaría mostrar diferentes informes y visualizar los datos. Por ejemplo

  • para mostrar qué productos se han vendido en cada región
  • para mostrar los productos vendidos en un período de informe específico
  • para mostrar todos los productos que ya están implementados

¿Cuál es la mejor manera de demostrarlo?

He intentado usar la función "dividir columna por delimitador en filas" (en la consulta de Power BI), pero el problema es que todas las demás filas y valores están duplicados. Esto causa un problema con otros elementos visuales que he creado (por ejemplo, un gráfico de barras para mostrar cuántos proyectos tuvimos en un período de informe / o cuántos proyectos en curso tenemos frente a los proyectos implementados). A medida que se agregan varias filas para todas las celdas que contienen varios productos, los datos de las otras columnas también se duplican y parece que se cuentan incorrectamente para otros objetos visuales.

Tal vez haya una solución fácil para lograr lo que quiero aquí, ¡pero pido amablemente apoyo!

EstadoProyectoProductos vendidosRegiónPeríodo
ImplementadoProyecto AProducto AEuropa septentrionalPregunta 1

Implementado

Proyecto B

Producto B; Producto AEuropa meridionalPregunta 2
ActualProyecto CProducto A; Producto B; Producto CEuropa OccidentalPregunta 1
ImplementadoProyecto DProducto BEuropa OccidentalPregunta 2
7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

Gracias por su respuesta. Sus soluciones funcionaron bien, pero tengo otro problema que surgió porque he cambiado ligeramente la vista de la tabla. Ahora tengo una columna que enumera todos los productos vendidos para un proyecto específico en una fila como se muestra a continuación (Productos combinados). Me gustaría crear otra columna personalizada que compruebe la columna combinada de productos y devuelva valores basados en lo siguiente:

- Si la columna de productos combinados está vacía, devuélvala vacía

- Si la columna de productos combinados contiene exactamente "Producto A, Producto B", devuelva el Producto A incluido el B

- Si la columna de productos combinados contiene al menos dos de las siguientes palabras/productos (Producto A, Producto B, Producto C, Producto D), devuelva Proyecto de solución

- De lo contrario, devuelve el valor de la columna Productos combinados.

He intentado usar la fórmula más abajo, pero aparentemente hay un error en la tercera declaración IF y el resultado no se muestra correctamente (ver más abajo en rojo). Sería genial si pudieras aconsejar cuál es el error aquí. Si hay una manera más fácil de lograr el resultado esperado, por favor hágamelo saber. ¡Gracias!

IDENTIFICACIÓNProductos combinadosInformes de productos (resultado actual)Informes de productos (resultado esperado)
1Producto AProducto AProducto A
2Producto A, Producto BProducto A, incluido el producto BProducto A, incluido el producto B
3Producto A, Producto B, Producto C, Producto DProducto A, Producto B, Producto C, Producto DProyecto de solución
4Producto A, Producto FProducto A, Producto FProducto A, Producto F

IF(
    ISBLANK('Dashboard'[ProductsCombined]),
    BLANK(),
    IF(
        'Dashboard'[ProductsCombined] = "Product A,Product B",
        "Product A including Product B",
        IF(
            CALCULATE(
                COUNTROWS(
                    FILTER(
                        VALUES('Dashboard'[ProductsCombined]),
                        COUNTROWS(
                            INTERSECT(
                                VALUES('Dashboard'[ProductsCombined]),
                                {"Product A", "Product B", "Product C", "Product D", "Product E", "Product F", "Product G"}
                            )
                        )
                    )
                )
            ) >= 2,
            "Solution Project",
            'Dashboard'[ProductsCombined]
        )
    )
)



Syndicate_Admin
Administrator
Administrator

Hola

Dividir los datos por filas es el camino a seguir. Una vez que lo hagas, comparte las preguntas para las que necesitas respuestas. Además, muestre el resultado esperado.

Bien, he hecho la división por filas. En mi vista de informe, tengo varios elementos visuales en los que muestro algunos datos de los proyectos por país o estado (por ejemplo, gráfico de barras: eje Y --> país, eje X --> recuento de proyectos/id).

Tengo las siguientes preguntas:

  1. Me gustaría mostrar todos los proyectos por país, pero el número total de proyectos es incorrecto --> creo que encontré la solución, pero ¿alguien puede confirmar que la forma correcta es contar de ID a Count of ID (distinto)?
  2. Me gustaría incluir una tabla visual en el informe para mostrar información detallada de los diferentes proyectos (incluidos los productos). En este caso, me gustaría que los productos no se separaran en diferentes filas.

Esta es la vista actual:

IDENTIFICACIÓNProyectosProductosRegiónValor de oportunidad
Identificación: 117Proyecto XProducto AEuropa septentrional10000 €
Identificación: 117Proyecto XProducto BEuropa septentrional10000 €
Identificación 4Proyecto DProducto AEuropa meridional5000 €

Me gustaría ver el siguiente punto de vista. Así que, básicamente, necesito el mismo "valor de celda" de nuevo antes de la eliminación en la que se combinaron los productos. De lo contrario, la tabla muestra los mismos proyectos varias veces con la única diferencia en la columna de producto. Idealmente, me gustaría crear otra columna (no existente) que muestre "proyectos multiproducto" para todos los proyectos que incluyan varios productos. ¿Puedo crear esto con una fórmula?

Identificación: 117Proyecto XProducto A, Producto BProyecto multiproductoEuropa septentrional
Identificación 4Proyecto DProducto AProducto A

Europa meridional

3. Me gustaría mostrar otros elementos visuales, por ejemplo, el valor total por región (por ejemplo, gráfico circular: Valores --> Suma del valor de oportunidad, Detalles: Región). Pero esta imagen muestra ahora 20.000 € (norte de Europa) frente a 5000 € (sur de Europa), lo cual es incorrecto. Lo correcto sería 10.000 € frente a 5000 €. ¿Cómo puedo evitar que estos valores se sumen para las filas adicionales que se crean por la eliminación?

Disculpas por todas las preguntas. He intentado buscar algunos videos sobre esto, pero ni siquiera sé exactamente qué buscar para describir lo que me gustaría construir. Espero que con la explicación anterior quede claro. ¡Gracias de antemano por cualquier apoyo en mis preguntas!

Hola

Para la primera, escribe esta medida

Número de proyectos = distinctcount(Data[Projects])

No puedo entender su segunda pregunta.

Para la tercera, escribe estas medidas

Medida = min(Datos[Valor de oportunidad])

Medida1 = SUMX(VALORES(Datos[Proyectos]),[Medir])

Use la medida 1 en todos los objetos visuales en los que desee ver los totales del proyecto.

Espero que esto ayude.

Hola

Gracias por su respuesta a la pregunta 1 + 3, esto funciona perfectamente.

Trataré de explicar la pregunta 2 con más detalle, ya que en realidad hay dos subpreguntas para esto.

Pregunta 2.1: Antes de separar la columna Productos por delimitador en filas, la columna de producto contenía ambas celdas con un solo producto y varios productos en una celda.

En el informe, he utilizado una "tabla visual" para mostrar la información de los diferentes proyectos y qué productos se incluyen (ver más abajo). Puede ver fácilmente si un proyecto incluye varios productos. Como los productos ahora están separados en varias filas, el "objeto visual de tabla" también muestra varias filas para el mismo proyecto (consulte la vista actual). ¿Es posible volver a combinar los diferentes productos en una sola celda? Tenga en cuenta que todavía me gustaría tener las filas separadas para contar los productos en otras imágenes. Supongo que necesito crear otra columna nuevamente en la vista de tabla que combina todos los productos nuevamente en una celda (entonces podría usar esta columna en el objeto visual de tabla en su lugar).

Vista esperada:

IDENTIFICACIÓNProyectosProductosRegiónEstado
Identificación 1Proyecto XProducto A; Producto B; Producto CEuropa septentrionalActual
Identificación 2Proyecto YProducto BEuropa septentrionalImplementado

Vista actual:

IDENTIFICACIÓNProyectosProductosRegiónEstado
Identificación 1Proyecto XProducto AEuropa septentrionalActual
Identificación 1Proyecto XProducto BEuropa septentrionalActual
Identificación 1Proyecto XProducto CEuropa septentrionalActual
Identificación 2Proyecto YProducto BEuropa septentrionalImplementado

Pregunta 2.2:
Me gustaría crear otra columna o medida en mi vista de tabla que muestre si los proyectos contienen solo un producto o varios productos. Si un proyecto contiene varios productos, la celda debe mostrar "Proyecto multiproducto". Si un proyecto contiene solo un producto, la celda debe mostrar el producto (ver más abajo en azul).

IDENTIFICACIÓNProyectosProductosProductos 2
Identificación 1Proyecto XProducto A; Producto B; Producto CProyecto multiproducto
Identificación 2Proyecto YProducto BProducto B

Espero que ahora entiendas la pregunta. De lo contrario, por favor hágamelo saber. Creo que el desafío es que necesito dividir la columna de productos en filas separadas para contar y visualizar los productos de una mejor manera. Pero para otras imágenes, necesitaría la columna que contiene todos los productos combinados en la celda.

Gracias de antemano.

Hola @LucaN123 ,

Le sugiero que duplique los [Productos vendidos] en Power Query Editor y luego divida el duplicado.

vrzhoumsft_0-1706510158563.png

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8swtyEnNTc0rSU1R0lEKKMrPSk0uUXCEsFNKoWy//KKSjNSiPAXX0qL8glSgSKChUqwOLu1OSNqdrBWQTQrOL0U3yQhskn9een5mXjqSKc7IjkCYgmQgSEV4anEJ8S5zQXYZVt1A18QCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Status = _t, Project = _t, #"Products sold" = _t, Region = _t, #"Reporting Period" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Status", type text}, {"Project", type text}, {"Products sold", type text}, {"Region", type text}, {"Reporting Period", type text}}),
    #"Duplicated Column" = Table.DuplicateColumn(#"Changed Type", "Products sold", "Products sold - Copy"),
    #"Reordered Columns" = Table.ReorderColumns(#"Duplicated Column",{"Status", "Project", "Products sold", "Products sold - Copy", "Region", "Reporting Period"}),
    #"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Reordered Columns", {{"Products sold - Copy", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Products sold - Copy"),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Products sold - Copy", type text}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type1",{{"Products sold - Copy", "Products sold -Splited"}}),
    #"Trimmed Text" = Table.TransformColumns(#"Renamed Columns",{{"Products sold -Splited", Text.Trim, type text}})
in
    #"Trimmed Text"

A continuación, crea una medida para lograr tu objetivo.

Products 2 = 
IF(CONTAINSSTRING(MAX('Table'[Products sold]),";"),"Multi-product project",MAX('Table'[Products sold]))

El resultado es el siguiente.

vrzhoumsft_1-1706510600658.png

Saludos
Rico Zhou

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

Hola

Por favor, lea sobre la función CONCATENATEX().

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.

February Power BI Update Carousel

Power BI Monthly Update - February 2026

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

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.