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
brumero
Helper I
Helper I

Cree una columna con una cadena que coincida con una parte de otra cadena de tablas diferentes

Hola a todos,

He estado revisando una gran cantidad de mensajes tratando de resolver lo siguiente. Haré todo lo posible para explicárselo.

El modelo se basa en información sobre las instalaciones de la empresa. Estas instalaciones están relacionadas por una jerarquía que tiene 4 niveles

faclvl1 --> faclvl2 --> faclvl3 --> faclvl4

Una tabla de hechos (Tabla A) tiene varios registros pero para todas las instalaciones a pesar de su nivel en la jerarquía. La columna está id_fac.

Existen 2 tipos principales de instalaciones, las que se incluyen en la Tabla B y la Tabla C y las que sólo están en la Tabla C.

En la Tabla B, tengo las cuatro columnas con la Jerarquía (faclvl1 / faclvl2 / faclvl3 / faclvl4)

En la Tabla C, tengo todas las instalaciones en una columna y otra columna especificando el tipo de instalaciones

Por lo tanto, para los que están sólo en la Tabla C, la única manera de crear una relación se basa en el nombre de la instalación que se hace como: Child_Parent_ChildCount.

Un ejemplo de esto podría ser Car-Parkinglot-A-105-001, donde Car es el tipo de instalación y el niño, Parkinglot-A-105 es la identificación del padre y 001 es la numeración de este niño.

así que... lo que estoy tratando de hacer es extraer el elemento primario de la cadena a otra columna para generar la jerarquía como tabla B y, a continuación, combinar ambas tablas (la nueva y la tabla B)

Un ejemplo de la tabla final podría ser el siguiente:

Instalaciónparking_lot
Aparcamiento-A-105-001Estacionamiento-A-105

Estacionamiento-A-105

Estacionamiento-A-105

Estacionamiento-CEstacionamiento-C
WtrDispenser-Parkinglot-B-101-005Estacionamiento-B-101

He visto varios mensajes de @ImkeF usando Text.Contains pero no puedo hacer que funcione.

Gracias a todos.

10 REPLIES 10
brumero
Helper I
Helper I

Finalmente he consigo resolverlo, probablemente, de la manera más ineficiente.

Dudo la tabla de ArcGIS y gesto una columna personalizada en la tabla original y la nueva. La columna personalizada tiene el valor de 1 para cada fila.

A continuación, comuniqué ambas tablas, haciendo coincidir con esta columna personalizada (creando una tabla masiva). A continuación, usé la función Text.Contains para identificar las filas que tiene dentro de la cadena Parent (agregando la condición de que ambos campos no deben tener la misma longitud de texto).

Eso es todo.

¡Gracias por tu contribución!

brumero
Helper I
Helper I

Gracias @FrankAT y @ImkeF por asistir a este tema.

Desafortunadamente no puedohacer las tablas orginales.

El problema con @FrankAT sugerencia es que no hay una identificación única para el padre, de hecho hay más de 200. La cosa es que necesito identificar las filas que contiene la cadena de otra fila dentro.

Permítanme ampliar el ejemplo:

Instalación

Padre

WtrDispenser-OfficeComp-01-005

OfficeComp-01

Aparcamiento-A-105-001

Estacionamiento-A-105

Estacionamiento-A-105

Estacionamiento-A-105

Estacionamiento-C

Estacionamiento-C

WtrDispenser-Parkinglot-B-101-005

Estacionamiento-B-101

SubStation-PwrStation-A-005

PwrStation-A

Después de todo, debería ser capaz de tenerlo así:

faclvl1

faclvl2

WtrDispenser-OfficeComp-01-005

OfficeComp-01

Aparcamiento-A-105-001

Estacionamiento-A-105

WtrDispenser-Parkinglot-B-101-005

Estacionamiento-B-101

SubStation-PwrStation-A-005

PwrStation-A

Gracias

FrankAT
Community Champion
Community Champion

Hola @brumero ,

Creo que el problema es cómo estructuras tus datos:

NiñoPadre#Concatenación con diferentes seperadores
CocheEstacionamiento-A-105001Coche,Parkinglot-A-105,001

Esa es una manera de identificar la parte principal.

Saludos FrankAT

Gracias @FrankAT ,

Esta columna procede de una tabla de ArcGIS, por lo que no puedo volver a estructurar la información.

Gracias

FrankAT
Community Champion
Community Champion

Hola

¿puede dar un ejemplo de vida de ArcGis?

Saludos FrankAT

Claro, este es un corto extracto de la mesa.

Espero que pueda encontrar esto útil.

Muchas gracias

ArcGIS.jpg

Hola @FrankAT, ¿alguna idea?

Gracias

FrankAT
Community Champion
Community Champion

Hola @brumero ,

pruebe el siguiente código M:

// Table
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wck4s0g1ILMrOzEvPyS/RddQ1NDDVNTAwVIrViVZCl0AXdAYLhJcUuWQWF6TmFaeimOUE1GIINAuoLRYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Facility = _t]),
    #"Inserted Text Before Delimiter" = Table.AddColumn(Source, "Text Before Delimiter", each Text.BeforeDelimiter([Facility], "Parkinglot"), type text),
    #"Added Custom" = Table.AddColumn(#"Inserted Text Before Delimiter", "Custom", each Text.End([Facility],Text.Length([Facility]) - Text.Length([Text Before Delimiter]))),
    #"Inserted Text Before Delimiter1" = Table.AddColumn(#"Added Custom", "Text Before Delimiter.1", each Text.BeforeDelimiter([Custom], "-", 2), type text)
in
    #"Inserted Text Before Delimiter1"

Figura

09-04-_2020_00-00-53.png

Saludos FrankAT

Hola @brumero

¿@FrankAT solución funciona para usted?

Si no es así, proporcione datos de ejemplo de las tablas de entrada también que coincidan con la tabla de salida que proporciona. ¡Gracias!

Imke Feldmann (The BIccountant)

If you liked my solution, please give it a thumbs up. And if I did answer your question, please mark this post as a solution. Thanks!

How to integrate M-code into your solution -- How to get your questions answered quickly -- How to provide sample data -- Check out more PBI- learning resources here -- Performance Tipps for M-queries

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.