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
Syndicate_Admin
Administrator
Administrator

LISTAGG para Power BI con datos de varias tablas

Hola

Tengo tres tablas: Estudiantes (tabla principal), Notas, Asignatura. Creé una relación entre las 3 tablas usando Student ID. Ahora, estoy tratando de crear una tabla visual en mi informe que se vea así:

Identificación de estudianteMarcasAsunto
1234587, 98Matemáticas, Biología
1267890, 85, 88Arte, Inglés, Matemáticas
1255691, 89Biología, Física
1298799, 90, 90Arte, Matemáticas, Inglés

Vi que esta persona usó CONCATENEX en este post: Resuelto: DAX Studio: Group by/Concatenate(Textcombine, list... - Microsoft Power BI Community

Y traté de seguir sus instrucciones, pero no funcionó para mí. Aquí está la columna calculada que intenté crear en mi tabla Estudiantes:

Measure = 
SUMMARIZECOLUMNS (
Students[Student ID],
Marks[Marks],
"Subject", CONCATENATEX ( VALUES ( Subject[Subject]), Subject[Subject], "," )
)

Nota: He visto tutoriales donde la gente ha usado el grupo por función en power query, sin embargo, no puedo detele eso y sería mucho mejor crear la columna usando DAX

1 ACCEPTED SOLUTION

@OPS-MLTSD hace este trabajo

Table 2 =
SUMMARIZECOLUMNS (
    Students[Student ID],
    TREATAS ( VALUES ( Students[Student ID] ), Marks[Student ID] ),
    TREATAS ( VALUES ( Students[Student ID] ), Subject[Student ID] ),
    "Marks", CONCATENATEX ( VALUES ( Marks[Marks] ), Marks[Marks], "," ),
    "Subject", CONCATENATEX ( VALUES ( Subject[Subject] ), Subject[Subject], "," )
)

View solution in original post

12 REPLIES 12
Syndicate_Admin
Administrator
Administrator

Hay @OPS-MLTSD

Pruebe este código para crear una nueva tabla con Dax:

Table = 
SUMMARIZECOLUMNS (
Students[Student ID],
"Marks",CONCATENATEX ( VALUES (Marks[Marks]), Marks[Marks], "," ),
"Subject", CONCATENATEX ( VALUES ( Subject[Subject]), Subject[Subject], "," )
)

Salida:

VahidDM_0-1637887302500.png

Si esta publicación ayuda,considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Aprecia tus felicitaciones!!
LinkedIn:
www.linkedin.com/in/vahid-dm/

hola @VahidDM

Intenté crear esta medida en mi tabla Estudiantes y este es el mensaje de error que recibí:

"La expresión se refiere a múltiples columnas. No se pueden convertir varias columnas en un valor escalar".

OPSMLTSD_0-1637891015155.png

¿Tengo que crear una tabla separada para esto? ¿No puedo hacer esta medida en mi tabla de Estudiantes? Gracias

@OPS-MLTSD

Sí, necesita crear otra tabla con ese código dax.

Si esta publicación ayuda,considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Aprecia tus felicitaciones!!
LinkedIn:
www.linkedin.com/in/vahid-dm/

@VahidDM

gracias, pude crear una nueva tabla con este DAX y todo está bien, pero parece que hay un valor NULL en mi columna de ID de estudiante. He comprobado mis tablas de origen y el ID de estudiante no es nulo en esas tablas de origen. Mi nueva tabla se ve así:

Identificación de estudianteMarcasAsunto
98,85Biología, Inglés
1234587, 98Matemáticas, Biología
1267890, 85, 88Arte, Inglés, Matemáticas
1255691, 89Biología, Física
1298799, 90, 90Arte, Matemáticas, Inglés

¿Hay alguna manera de eliminar esta fila superior con el ID de estudiante en blanco? ¿Puedo hacer algo como esto a mi DAX?:

Table = 
SUMMARIZECOLUMNS (
Students[Student ID] IS NOT BLANK,
"Marks",CONCATENATEX ( VALUES (Marks[Marks]), Marks[Marks], "," ),
"Subject", CONCATENATEX ( VALUES ( Subject[Subject]), Subject[Subject], "," )
)

@OPS-MLTSD hace este trabajo

Table 2 =
SUMMARIZECOLUMNS (
    Students[Student ID],
    TREATAS ( VALUES ( Students[Student ID] ), Marks[Student ID] ),
    TREATAS ( VALUES ( Students[Student ID] ), Subject[Student ID] ),
    "Marks", CONCATENATEX ( VALUES ( Marks[Marks] ), Marks[Marks], "," ),
    "Subject", CONCATENATEX ( VALUES ( Subject[Subject] ), Subject[Subject], "," )
)

@smpa01

gracias, el problema es, porque tengo más asignaturas que notas, la fórmula dax que tienes arriba se deshizo de esas asignaturas y solo mantuve asignaturas para las que están disponibles las notas, no quiero deshacerme de las asignaturas. Quiero que todos los temas se muestren todavía, incluso si las calificaciones para esos temas aún no existen. Quiero que los datos se vean así:

Identificación de estudianteMarcasAsunto
1234587, 98Matemáticas, Biología
1267890, 85, 88Arte, Inglés, Matemáticas
1255691, 89Biología, Física
1298799, 90, 90Arte, Matemáticas, Inglés
12399 Gimnasio, Arte, Ciencias Sociales

está bien tener calificaciones NULAS o asignatura, pero no está bien tener una identificación de estudiante nula. Espero que tenga sentido. ¡Gracias a ambos por su ayuda!

@OPS-MLTSD todavía está haciendo el trabajo

| Students   |
|------------|
| Student ID |
|------------|
| 12345      |
| 12678      |
| 12556      |
| 12987      |
| 12399      |


|         Subject             |
|------------|----------------|
| Student ID | Subject        |
|------------|----------------|
| 114457     | Biology        |
| 114578     | English        |
| 12345      | Math           |
| 12345      | Biology        |
| 12678      | Art            |
| 12678      | English        |
| 12678      | Math           |
| 12556      | Biology        |
| 12556      | Physics        |
| 12987      | Art            |
| 12987      | Math           |
| 12987      | English        |
| 12399      | Gym            |
| 12399      | Art            |
| 12399      | Social Science |


|        Marks       |
|------------|-------|
| Student ID | Marks |
|------------|-------|
| 112233     | 98    |
| 112234     | 85    |
| 12345      | 87    |
| 12345      | 98    |
| 12678      | 90    |
| 12678      | 85    |
| 12678      | 88    |
| 12556      | 91    |
| 12556      | 89    |
| 12987      | 99    |
| 12987      | 90    |
| 12987      | 90    |

smpa01_0-1637956414014.png

Pbix está conectado

eso es extraño en mi archivo, tengo una fila de ID de estudiante en blanco, pero cuando hago esto, el problema se resuelve:

Table 2 =
SUMMARIZECOLUMNS (
    Students[Student ID],
    --TREATAS ( VALUES ( Students[Student ID] ), Marks[Student ID] ),
    TREATAS ( VALUES ( Students[Student ID] ), Subject[Student ID] ),
    "Marks", CONCATENATEX ( VALUES ( Marks[Marks] ), Marks[Marks], "," ),
    "Subject", CONCATENATEX ( VALUES ( Subject[Subject] ), Subject[Subject], "," )
)

¿Sabes por qué sería así?

PD: Realmente aprecio su ayuda y @VahidDM. He aceptado su respuesta como la solución. Gracias

@OPS-MLTSD si publicas el pbix puedo echar un vistazo

Tbh Tengo algunos datos confidenciales a nivel de cliente aquí que no puedo publicar, ¿hay algo más que pueda proporcionar?

Hola

Comparta algunos datos ficticios en las 3 tablas y muestre el resultado esperado. Comparta datos en un formato que se pueda pegar en un libro de MS Excel.

Creo que puede haber habido un problema con una de las tablas de mi base de datos que causó el problema NULL que describí en la parte superior.

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.