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
FlyKick
Helper II
Helper II

Extraer texto entre dos delimitadores solo si el delimitador existe

Gday All,

Tengo una columna con direcciones IP en diferentes formatos. Algunos son correctos, pero otros existen entre dos corchetes [ ]. E.g.

  • 111.111.111.111
  • 1111:1111:1111:1111:1111:1111:1111:1111
  • [111.111.111.111]:10828
  • [1111:1111:1111:1111:1111:1111:1111:1111]:19044

He intentado usar texto de extracción entre dos delimitadores en el Editor de Power Query y esto funciona, pero envía todas las entradas con formato correcto que no tienen los delimitadores. Es decir, estas entradas se borran.

  • 111.111.111.111
  • 1111:1111:1111:1111:1111:1111:1111:1111

¿Es una forma de ejecutar el extracto e ignorar las celdas que no contienen el carácter delimitador?

Gracias de antemano por su ayuda....

Salud

Fly Kick

1 ACCEPTED SOLUTION

Hola @FlyKick

Pruebe la siguiente fórmula como una columna personalizada en el Editor de consultas. Tendrá que cambiar [IP] por el nombre de la columna.

if Text.Contains([IP],"[") then Text.BetweenDelimiters([IP], "[", "]") as text else [IP]

Marque esto como una solución si proporciona los datos que necesita.

Gracias

Jorge

View solution in original post

4 REPLIES 4
judspud
Solution Supplier
Solution Supplier

Hola @FlyKick

Puede probar una instrucción in que tenga el archivo text.contains como expresión en primer lugar.

Es decir, busque en el texto [ o ] y luego extraiga el texto entre lo contrario es sólo el texto.

https://docs.microsoft.com/en-us/powerquery-m/text-contains

Espero que esto ayude

Gracias

Jorge

Hola George,

Gracias por la propina. Soy bastante nuevo en todo esto de Power BI. Sólo para aclarar que necesito entrar en el editor de consultas avanzada para completar esto correcto? Acabo de intentar añadir la siguiente línea.

  • Text.Contains(?"Expanded AuditData.ClientIP", "[")

¿Se espera que se espera un erorrs con Token Eof? He pegado lo que se muestra actualmente en el editor de consultas avanzada a continuación en caso de que sea de asistencia?

Dejar
Fuente: Csv.Document(File.Contents("C:-tempp-AuditLog.csv"),[Delimiter-",", Columnas-4, Codificación-65001, QuoteStyle-QuoteStyle.None]),
"Encabezados promocionados" - Table.PromoteHeaders(Source, [PromoteAllScalars-true]),
"Tipo modificado" ? Table.TransformColumnTypes(''Encabezados promocionados'''''''CreationDate'', escriba datetime', ''UserIds'', 'texto de texto', ''Operaciones''', escriba text', ''AuditData'', escriba text'),
"JSON analizado" ? Table.TransformColumns("Changed Type", "AuditData", Json.Document, Json.Document, Json.Document, Json.Document, Json.Document, Json.Document, Json.Document, Json.Document, Json.Document, Json.Document, Json.Document, Json.Document, Json.Document, Json.Document, Json.Document, Json.Document, Json.Document, Json.Document, Json.
"Expanded AuditData" á Table.ExpandRecordColumn(?"Parsed JSON", "AuditData", "CreationTime", "Id", "Operation", "OrganizationId", "RecordType", "ResultStatus", "UserKey", "UserType", "Version", "Workload", "ClientIP", "UserId", "ClientIPAddress", "ClientInfoStrEng", "ClientProcessName", "ClientVersion", "ExternalAccess", "InternalLogonType", "LogonType", "LogonUserSid", "MailboxGuid", "MailboxOwnerSid", "MailboxOwnerUPN", " "AffectedItems", "CrossMailboxOperation", "DestFolder", "Folder", "ObjectId", "CorrelationId", "EventSource", "ItemType", "ListId", "ListItemUniqueId", "Site", "UserAgent", "WebId", "SourceFileExtension", "SiteUrl", "SourceFileName", "SourceRelativeUrl", "OperationProperties", "Item", "ActivityParameters", "FormsUserType", "SourceApp", "AzureActiveDirectoryEventType", "ExtendedProperties", "ModifiedProperties", "Actor", "ActorContextId", "ActorIpAddress", "Inter IntraSystemId", "SupportTicketId", "Target", "TargetContextId", "ApplicationId", "FormId", "FormName", "LogonError", "MachineDomainInfo", "MachineId", "FileSyncBytesCommitted", "ImplicitShare", "ApplicationDisplayName", "DestinationFileExtension", "DestinationFileName", "DestinationRelativeUrl", "ExchangeDetails", "DoNotDistributeEvent", "AuditData.CreationTime", "AuditData.Id", "AuditData.Operation", "AuditData.OrganizationId", "AuditData. AuditData.ResultStatus", "AuditData.UserKey", "AuditData.UserType", "AuditData.Version", "AuditData.Workload", "AuditData.ClientIP", "AuditData.UserId", "AuditData.ClientIPAddress", "AuditData.ClientInfoString", "AuditData.ClientProcessName", "AuditData.ClientVersion", "AuditData.ExternalAccess", "AuditData.InternalLogonType", "AuditData.LogonType", "AuditData.LogonUserSid", "AuditData.MailboxGuid", "AuditData.Mailbox. AuditData.OrganizationName", "AuditData.OriginatingServer", "AuditData.SessionId", "AuditData.AffectedItems", "AuditData.CrossMailboxOperation", "AuditData.DestFolder", "AuditData.Folder", "AuditData.ObjectId", "AuditData.CorrelationId", "AuditData.EventSource", "AuditData.ItemType", "AuditData.ListId", "AuditData.ListItemUniqueId", "AuditData.Site", "AuditData.UserAgent", "AuditData.WebId", "AuditData.SourceFileExtension", "AuditData.SiteUrl", " AuditData.SourceFileName", "AuditData.SourceRelativeUrl", "AuditData.OperationProperties", "AuditData.Item", "AuditData.ActivityParameters", "AuditData.FormsUserType", "AuditData.SourceApp", "AuditData.AzureActiveDirectoryEventType", "AuditData.ExtendedProperties", "AuditData.ModifiedProperties", "AuditData.Actor", "AuditData.ActorContextId", "AuditData.ActorIpAddress", "AuditData.InterSystemsId", "AuditData.IntraSystemId", "AuditData.IntraSystemId", "AuditData. AuditData.Target", "AuditData.TargetContextId", "AuditData.ApplicationId", "AuditData.FormId", "AuditData.FormName", "AuditData.LogonError", "AuditData.MachineDomainInfo", "AuditData.MachineId", "AuditData.FileSyncBytesCommitted", "AuditData.ImplicitShare", "AuditData.ApplicationDisplayName", "AuditData.DestinationFileExtension", "AuditData.DestinationFileName", "AuditData.DestinationRelativeUrl", "AuditData.ExchangeDetails", "AuditData.ExchangeDetails", "AuditData.DoNotDistributeEvent", "AuditData.DestinationRelativeUrl", "AuditData.ExchangeDetails", "AuditData.ExchangeDetails", "AuditData.DoNotDistributeEvent", "AuditData.DestinationRelativeUrl", "AuditData.ExchangeDetails", "AuditData.ExchangeDetails", "AuditData.DoNotDistributeEvent", "AuditData.DestinationRelative", "AuditData.DestinationRelative", "AuditData.ExchangeDetails", "AuditData.ExchangeDetails", "AuditData.DoNotDistributeEvent", "AuditData.DestinationRelative", "AuditData.DestinationRelative", "AuditData.ExchangeDetails", "AuditData.ExchangeDetails", "AuditData.DoNotDistributeEvent", "AuditData.DestinationRelative", "AuditData.DestinationRelativeUrl", "AuditData.ExchangeDetails", "AuditData.ExchangeDetails", "AuditData.DoNotDistributeEvent", "AuditData.DestinationRelative", "Audit
"Columnas renombradas" ? Table.RenameColumns(?"Expanded AuditData","AuditData.CreationTime", "AuditData.CreationTimeUTC", "CreationDate", "CreationDate(Local)",),
"Expanded AuditData.DestFolder" á Table.ExpandRecordColumn(?"Columnas renombradas", "AuditData.DestFolder", "Id", "Ruta de acceso", "AuditData.DestFolder.Id", "AuditData.DestFolder.Path",)
"Expanded AuditData.Folder" á Table.ExpandRecordColumn(''Expanded AuditData.DestFolder', "AuditData.Folder", ''Id'', 'Path',''AuditData.Folder.Id"', 'AuditData.Folder.Path''),
"Expanded AuditData.AffectedItems" á Table.ExpandListColumn(?"Expanded AuditData.Folder", "AuditData.AffectedItems"),
"Expanded AuditData.AffectedItems1" á Table.ExpandRecordColumn(''Expanded AuditData.AffectedItems',' "AuditData.AffectedItems", "Attachments", "Id", "InternetMessageId", "ParentFolder", "Subject", "AuditData.AffectedItems.Attachments", "AuditData.AffectedItems.Id", "AuditData.AffectedItems.InternetMessageId", "AuditData.AffectedItems.ParentFolder", "AuditData.AffectedItems.Subject"-),
"Expanded AuditData.Item" á Table.ExpandRecordColumn(''Expanded AuditData.AffectedItems1", "AuditData.Item", 'Id"', 'ParentFolder'', ''AuditData.Item.Id'', 'AuditData.Item.ParentFolder'''),
"Expanded AuditData.Item.ParentFolder" á Table.ExpandRecordColumn(?"Expanded AuditData.Item", "AuditData.Item.ParentFolder", "Id", "Name", "Path", "AuditData.Item.ParentFolder.Id", "AuditData.Item.ParentFolder.Name", "AuditData.Item.ParentFolder.Path"-),
"Expanded AuditData.OperationProperties" á Table.ExpandListColumn(?"Expanded AuditData.Item.ParentFolder", "AuditData.OperationProperties"),
"Expanded AuditData.OperationProperties1" ? Table.ExpandRecordColumn(?"Expanded AuditData.OperationProperties", "AuditData.OperationProperties", "Name", "Value", "AuditData.OperationProperties.Name", "AuditData.OperationProperties.Value"-),
"Expanded AuditData.ExtendedProperties" á Table.ExpandListColumn(?"Expanded AuditData.OperationProperties1", "AuditData.ExtendedProperties"),
"Expanded AuditData.ExtendedProperties1" á Table.ExpandRecordColumn(''Expanded AuditData.ExtendedProperties',', 'AuditData.ExtendedProperties','''''''AuditData.ExtendedProperties.Name''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
"Expanded AuditData.ModifiedProperties" á Table.ExpandListColumn(?"Expanded AuditData.ExtendedProperties1", "AuditData.ModifiedProperties"),
"Expanded AuditData.AffectedItems.ParentFolder" ? Table.ExpandRecordColumn(?"Expanded AuditData.ModifiedProperties", "AuditData.AffectedItems.ParentFolder", "Id", "Path", "AuditData.AffectedItems.ParentFolder.Id", "AuditData.AffectedItems.ParentFolder.Path".)
in
"Expanded AuditData.AffectedItems.ParentFolder"

Hola @FlyKick

Pruebe la siguiente fórmula como una columna personalizada en el Editor de consultas. Tendrá que cambiar [IP] por el nombre de la columna.

if Text.Contains([IP],"[") then Text.BetweenDelimiters([IP], "[", "]") as text else [IP]

Marque esto como una solución si proporciona los datos que necesita.

Gracias

Jorge

Hola George,

¡Eso ha hecho el truco! Parece que estaba ladrando el árbol equivocado todo el tiempo 😉 Realmente apreciar su ayuda y súper puntos de bonificación para ayudar tarde en un viernes por la noche! Gracias.....

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.