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

Cadena de texto

Buenos días,

A ver si alguien me puede ayudar:

Tengo dos tablas:

Tabla 1

Número
glusterblock-storage-provisioner-dc-1-3rg3j4
busqueda-ms-002-5
liquidación comercialpagos-2-00er4
drupal-cms-asyb-21-02

Tabla 2

NúmeroValor
glusterblock-storage-provisioner-dc123
busqueda-ms45
pagos de liquidación comercial33
drupal-cms-asyb54


Necesitaría traer el valor de la tabla 2 a la tabla 1 y para ello la función DAX debería recorrer el texto de la tabla 2 hasta que coincidiera con el texto de la tabla 1. La teoría la sé pero no logro llevarlo a una sentencia DAX.
Como se ve, no siguen un patrón en el que pueda hacer un split por "-".

He probado con la siguiente sentencia pero no ajusta la búsqueda al 100%:

Valor = DÓNDE TextbeforeQM =
IZQUIERDA(
'Tabla 1'[Nombre],
DÓNDE mylen1 =
ENCONTRAR ( "-", 'Tabla 1'[Nombre], 1, 0 )
DEVOLUCIÓN
SI ( mylen1 = 0, SOLAMENTE ( 'Tabla 1'[Nombre] ), mylen1 - 1 )
)
DEVOLUCIÓN
VALOR DE BÚSQUEDA (Tabla 2 [Valor] ,Tabla 2 [Nombre], TextbeforeQM )
¿alguna idea por favor?
Un saludo y gracias de entemano
1 ACCEPTED SOLUTION

La solución era mucho más simple que la forma en que la estaba expresando. Estaba obsesionado con DAX cuando hay una función de power query que resuelve el problema.
Es Table.FuzzyNestedJoin...

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

@jemalosa , algo así

Valor = VAR TextbeforeQM =
LEFT(
'Tabla 1'[Nombre],
VAR mylen1 =
FIND ( "-", 'Tabla 1'[Nombre], 1, 0 )
RETURN
IF ( mylen1 = 0, LEN ( 'Tabla 1'[Nombre] ), mylen1 - 1 )
)
RETURN
maxx (filter('Tabla 2', 'Tabla 2' [Nombre]= TextbeforeQM ),'Tabla 2' [Valor])

¿Cuál es el resultado esperado?

Trataré de explicarlo mejor:

Tengo una tabla con miles de filas similar a:

Cuadro 1
alertmanager-main-0-rdes34
alertmanager-main-1
alertmanager-main-2-234r
apa-app-9-vr6
apa-app-4
cluster-events-kafka-11
cluster-events-kafka-2-23t5

Tengo otra tabla similar a esta que contiene un campo de valor:

Tabla 2 Valor
alertmanager-main 3
apa-app 1
cluster-events-kafka 1


Necesito encontrar los valores de la tabla 2 en la tabla 1. Para las filas 1,2 y 3 de la Tabla 1 el valor sería "3".
Para las filas 4 y 5 el valor sería "1" y para las filas 6 y 7 el valor sería "1".

Como puede ver, los nombres de la Tabla 1 no tienen un patrón igual, ya que pueden tener 1 o dos guiones.

¿Cómo podría hacer una búsqueda para que cuando haga coincidir el nombre de la tabla 2 con la parte común del nombre de la tabla 1 pueda encontrar el valor?

Saludos

La solución era mucho más simple que la forma en que la estaba expresando. Estaba obsesionado con DAX cuando hay una función de power query que resuelve el problema.
Es Table.FuzzyNestedJoin...

Hola amitchandak,

Gracias por su ayuda,

He probado su solución y me aporta los mismos valores que con la solución que ya había probado.

Hay ciertas cadenas de texto que no me aportan el valor.

¿Alguna idea?

Tabla 1Valor
desafíos-compromisos-lote-7-d25lg
desafíos-compromisos-9-tpq55
desafíos-compromisos-9-x8jvx

Tabla 2Valor
desafíos-compromisos2
desafíos-compromisos-lote1

Saludos

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.