cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
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
Highlighted
Solution Sage
Solution Sage

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

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

Highlighted
Super User III
Super User III

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

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

Highlighted
Helper I
Helper I

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

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

Highlighted
Solution Sage
Solution Sage

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

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

Highlighted
Helper I
Helper I

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

Gracias @FrankAT ,

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

Gracias

Highlighted
Solution Sage
Solution Sage

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

Hola

¿puede dar un ejemplo de vida de ArcGis?

Saludos FrankAT

Highlighted
Helper I
Helper I

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

Claro, este es un corto extracto de la mesa.

Espero que pueda encontrar esto útil.

Muchas gracias

Highlighted
Helper I
Helper I

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

ArcGIS.jpg

Highlighted
Helper I
Helper I

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

Hola @FrankAT, ¿alguna idea?

Gracias

Helpful resources

Announcements
August 2020 Community Challenge: Can You Solve These?

August 2020 Community Challenge: Can You Solve These?

We're excited to announce our first cross-community 'Can You Solve These?' challenge!

Super Users of the Quarter - Q2 2020

Super Users of the Quarter - Q2 2020

Who are our Super User Superstars? Who made it to the top of the leaderboards? Get the answers!

Community Blog

Community Blog

Visit our Community Blog for articles, guides, and information created by fellow community members.

Community Summit Australia – Join Online!

Community Summit Australia – Join Online!

Be a part of the leading Microsoft Business Applications digital event, curated for the APAC community.