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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Extraer texto después del delimitador mientras se igorizan palabras repetidas basadas en la columna ID de propietario

Tengo datos como la siguiente tabla:

ID de propietario

Descripción de la mascota

[Salida deseada]

123

Perro Marrón Claro

Marrón claro

123

Perro Tono oscuro de verde

Tono oscuro de verde

123

Perro Negro

Negro

456

Casa Gato Púrpura

Morado

456

Gato de la casa azul claro

Azul claro

789

Ratón Blanco

Blanco

Necesito crear una nueva columna que contenga solo el color de la mascota, por ejemplo, marrón claro, tono oscuro de verde, etc.
Sin embargo, no puedo averiguar cómo extraer la información de color ya que el campo de descripción no es consistente.
Planeé hacer Extract Text después de Delimiter " ", pero debido a las inconsistencias no funcionará.
¿Hay alguna manera (en DAX, Power Query, cualquier cosa) en la que pueda recrear la siguiente lógica?
Para cada fila de ID de propietario XXX, por ejemplo, 123, ignore las palabras que se encuentran en todas las filas, por ejemplo, 'Perro' en las primeras 3 filas, y extraiga el texto después.
NOTA: En mi conjunto de datos, NO habrá valores de descripción duplicados, es decir. todo único

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

@lc881 ,

En power query, cree una columna personalizada y use la fórmula siguiente.

if Text.Contains([Pet Description], "Dog") then Text.Replace([Pet Description],"Dog","") else if Text.Contains([Pet Description], "House Cat") then Text.Replace([Pet Description],"House Cat","") else ""

A continuación, recorte y limpie la columna. Puede construirlo como desee con las variaciones del nombre de su mascota.

HTH

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

@lc881 ,

En power query, cree una columna personalizada y use la fórmula siguiente.

if Text.Contains([Pet Description], "Dog") then Text.Replace([Pet Description],"Dog","") else if Text.Contains([Pet Description], "House Cat") then Text.Replace([Pet Description],"House Cat","") else ""

A continuación, recorte y limpie la columna. Puede construirlo como desee con las variaciones del nombre de su mascota.

HTH

Hacerlo en Power Query fue el consejo que necesitaba, gracias.
Como había cientos y cientos de filas con muchas descripciones de mascotas diferentes, habría tomado demasiado tiempo escribir manualmente una declaración larga con todos los nombres, etc. (Debería haber especificado eso en la pregunta)

Lo que tenía que hacer era crear una columna que contara el número de palabras en Pet Description. Luego agrupé el ID de propietario por MIN de Recuento de palabras. Luego agregué una columna personalizada que calculaba el recuento de palabras de esa fila - MIN para ese ID de propietario. Luego utilicé este valor como una variable en una función 'Split by delimiter'. No es bonito, pero probablemente sea el mejor resultado para mí.

Debido a que su solución responde al alcance de la pregunta que publiqué y sería útil para los principiantes, la voy a marcar como solución 🙂 gracias

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Prices go up Feb. 11th.

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

Jan NL Carousel

Fabric Community Update - January 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors