Columna separada por comas donde/si condición

Un usuario Pregunto ✅

sdsai777

Hola a todos,

Tengo una ID única y una columna CONCAT con valor separado por comas e ID de artículo. A continuación se muestra el conjunto de datos y el resultado esperado.

IDENTIFICACIÓN columna CONCAT Identificación del artículo
1 100, 200, 300, 400 , 500 100, 300
2 700, 800, 100, 200, 300 100
3 1000, 2000, 3000, 4000 500
8 1000 100
6 1000, 2000, 200, 8000 8000
4 100, 500 1000, 100

SI el ID del elemento tiene algún valor en la columna CONCAT, entonces S, de lo contrario, N.

Lo anterior es solo una muestra de datos y la lista de columnas CONCAT es muy grande. Traté de dividir la columna por coma, me dio como 100 columnas adicionales en las que no pude hacer una condición IF/where.

A continuación se muestra el resultado esperado.

IDENTIFICACIÓN columna CONCAT Identificación del artículo Indicador
1 100, 200, 300, 400 , 500 100, 300 Y
2 700, 800, 100, 200, 300 100 Y
3 1000, 2000, 3000, 4000 500 norte
8 1000 100 norte
6 1000, 2000, 200, 8000 8000 Y
4 100, 500 1000, 100 Y

Gracias por mirar esto y avíseme si hay alguna solución.

Hola @sdsai777,

Revisa este blog.

https://dax.tips/2019/07/05/dax-pivot-text-into-a-list-of-words/

Indique los valores de ambos columna CONCAT e ID de artículo, entonces puede compararlos.

Atentamente,

Arrendajo

mahoneypat

Buscar una sola ID en la Lista Concat es sencillo con la BÚSQUEDA, pero es más complicado encontrar las comas, analizar los caracteres antes/después, eliminar los espacios y luego BUSCAR esos es la columna Concat.

Palmadita

FrankAT

Hola @sdsai777,

échale un vistazo al siguiente enlace:

http://sqljason.com/2013/06/dividir-fila-delimitada-en-varias-filas.html

Un cordial saludo desde el pueblo donde vive la leyenda del ‘Pied Piper of Hamelin’
FrankAT (Orgulloso de ser un Datanaut)

sdsai777

En respuesta a FrankAT

Gracias por la respuesta, Frank, pero estoy viendo una condición donde/SI sin dividir la columna.

Gracias

mahoneypat

En respuesta a sdsai777

En el editor de consultas, puede agregar una columna personalizada y colocar esta fórmula en el cuadro emergente.

dejar

concatlist = List.Transform(Text.Split([CONCAT column], «,»), cada Texto.Recortar(_)),
IDlist = List.Transform(Text.Split([Item ID], «,»), cada Texto.Trim(_))
en
si List.Count(List.Intersect({concatlist, IDlist}))>0 entonces «Y» else «N»

La función List.Transform es necesaria ya que a veces tiene un espacio adicional entre los elementos de la lista. Esto elimina los espacios si los hay.

Palmadita

sdsai777

En respuesta a mahoneypat

Gracias por la respuesta Pat. Esta tabla se deriva mediante la declaración DAX en el escritorio de Power BI y no puedo editarla en Power Query. ¿Hay alguna forma de hacerlo usando la declaración DAX?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *