Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Learn from the best! Meet the four finalists headed to the FINALS of the Power BI Dataviz World Championships! Register now
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
¿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!
| Estado | Proyecto | Productos vendidos | Región | Período |
| Implementado | Proyecto A | Producto A | Europa septentrional | Pregunta 1 |
Implementado | Proyecto B | Producto B; Producto A | Europa meridional | Pregunta 2 |
| Actual | Proyecto C | Producto A; Producto B; Producto C | Europa Occidental | Pregunta 1 |
| Implementado | Proyecto D | Producto B | Europa Occidental | Pregunta 2 |
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ÓN | Productos combinados | Informes de productos (resultado actual) | Informes de productos (resultado esperado) |
| 1 | Producto A | Producto A | Producto A |
| 2 | Producto A, Producto B | Producto A, incluido el producto B | Producto A, incluido el producto B |
| 3 | Producto A, Producto B, Producto C, Producto D | Producto A, Producto B, Producto C, Producto D | Proyecto de solución |
| 4 | Producto A, Producto F | Producto A, Producto F | Producto 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]
)
)
)
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:
Esta es la vista actual:
| IDENTIFICACIÓN | Proyectos | Productos | Región | Valor de oportunidad |
| Identificación: 117 | Proyecto X | Producto A | Europa septentrional | 10000 € |
| Identificación: 117 | Proyecto X | Producto B | Europa septentrional | 10000 € |
| Identificación 4 | Proyecto D | Producto A | Europa meridional | 5000 € |
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: 117 | Proyecto X | Producto A, Producto B | Proyecto multiproducto | Europa septentrional |
| Identificación 4 | Proyecto D | Producto A | Producto 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ÓN | Proyectos | Productos | Región | Estado |
| Identificación 1 | Proyecto X | Producto A; Producto B; Producto C | Europa septentrional | Actual |
| Identificación 2 | Proyecto Y | Producto B | Europa septentrional | Implementado |
Vista actual:
| IDENTIFICACIÓN | Proyectos | Productos | Región | Estado |
| Identificación 1 | Proyecto X | Producto A | Europa septentrional | Actual |
| Identificación 1 | Proyecto X | Producto B | Europa septentrional | Actual |
| Identificación 1 | Proyecto X | Producto C | Europa septentrional | Actual |
| Identificación 2 | Proyecto Y | Producto B | Europa septentrional | Implementado |
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ÓN | Proyectos | Productos | Productos 2 |
| Identificación 1 | Proyecto X | Producto A; Producto B; Producto C | Proyecto multiproducto |
| Identificación 2 | Proyecto Y | Producto B | Producto 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.
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.
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().
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
Check out the February 2026 Power BI update to learn about new features.