Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Tengo dos tablas donde la tabla 1 actúa como una tabla de hechos con una columna que contiene los ID de otra tabla. Cada fila no puede contener ningún identificador, un identificador o más de un identificador separado por una coma. La segunda tabla actúa como una tabla de dimensiones donde la columna 1 es el identificador único y la columna 2 es el valor único para ese identificador. Esta tabla es dinámica, ya que se pueden agregar filas en caso de que se necesiten nuevos valores. Hay alrededor de 20 IDENTIFICADORes/etiquetas únicos. En este punto, la mayoría de los lables colocados en una sola fila son cinco, pero eso podría cambiar en función de la necesidad del negocio.
Ayuda:
Lo que estoy buscando es cómo levantar una columna en la tabla 1 que devuelve los valores de los identificadores en la columna de esa fila.
Lo que he intentado:
Cuando administre las relaciones entre las dos tablas, uniendo en columnas de identificador, esto solo funciona para aquellas filas donde hay un identificador en la tabla 1. Cada vez que hay más de un ID en un campo, no se devuelve nada. He intentado usar algunas fórmulas DAX, así como la consulta de energía, pero no puedo devolver valores donde hay más de un identificador.
Aquí hay tres tablas para mostrar lo que tengo y lo que me gustaría lograr:
Tabla 1
Card_ID | Card_Label_ID |
abc123 | a1s2d3f4 |
def456 | b5n6n7m8, a1s2d3f4 |
ghi789 |
Tabla 2
Label_ID | Label_Value |
a1s2d3f4 | Error |
b5n6n7m8 | Mantenimiento |
c0v9b8n7 | Mejora |
Tabla 3 - Salida deseada para la Tabla 1
Card_ID | Card_Label_ID | Card_Label_Value |
abc123 | a1s2d3f4 | Error |
def456 | b5n6n7m8, a1s2d3f4 | Mantenimiento, Bug |
ghi789 |
Cualquier ayuda sería muy apreciada!
Gracias
Solved! Go to Solution.
@sam123 Vea lo que piensa de esta solución. PBIX se une después de sig. Cuadro (4) y cuadro (4a):
Column =
VAR __Table =
ADDCOLUMNS(
GENERATE(
{ [Card_ID] },
'Table (4a)'
),
"Replace",IF(FIND([Label_ID],[Card_Label_ID],,0)>0,[Label_Value],BLANK())
)
RETURN
CONCATENATEX(FILTER(__Table,NOT(ISBLANK([Replace]))),[Replace],", ")
Desde Greg señor ya ha publicado la solución DAX.. Así que,puedes obtener gelp de eso.. Aunque a continuación se muestra la solución de consulta Power
downlaod el archivo PBI..
saludos
sanéticas
@sam123 Vea lo que piensa de esta solución. PBIX se une después de sig. Cuadro (4) y cuadro (4a):
Column =
VAR __Table =
ADDCOLUMNS(
GENERATE(
{ [Card_ID] },
'Table (4a)'
),
"Replace",IF(FIND([Label_ID],[Card_Label_ID],,0)>0,[Label_Value],BLANK())
)
RETURN
CONCATENATEX(FILTER(__Table,NOT(ISBLANK([Replace]))),[Replace],", ")
Hola Greg,
¡Muchas gracias! Esto funciona perfectamente. Proporcionar el archivo fue increíblemente útil para entender la lógica (que va a tomar un poco para trabajar a través de a pesar de yee ole copiar y pegar trabajando como un encanto).
Mejor
Sam
Por lo tanto, cree una variable de tabla llamada __Table. Utilice el valor de la fila actual de la Card_ID de columna, tratándola como una tabla ( ) y, a continuación, con esta generación de una tabla que contenga lo que es esencialmente un producto cartesiano entre este y Table (4a) para que termine con una tabla que incluya el valor de Card_ID de la fila actual junto con cada fila de Table (4a). Otra forma de decir esto es que está tomando la tabla (4a) y esencialmente picando en el valor Card_ID de la fila actual.
A esta tabla, a continuación, agregue una columna, Reemplazar, donde intenta encontrar si la Label_ID de la fila actual está en la misma fila Card_ID. Si es así, devuelva el Label_Value equivalente. Si no es así, devuelva BLANK.
Para RETURN, filtre los espacios en blanco en Reemplazar y concatene los valores de la columna Reemplazar.
Column =
VAR __Table =
ADDCOLUMNS(
GENERATE(
{ [Card_ID] },
'Table (4a)'
),
"Replace",IF(FIND([Label_ID],[Card_Label_ID],,0)>0,[Label_Value],BLANK())
)
RETURN
CONCATENATEX(FILTER(__Table,NOT(ISBLANK([Replace]))),[Replace],", ")