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
Anonymous
Not applicable

Sustitución de valores en una columna, en función de otra columna que contenga cierto texto: Power BI Desktop

Hola

Estoy en medio de la transformación de algunos datos para un informe simple (tabla y gráfico). Necesito cambiar un código de construcción de decir:

A1 a D1 en la "Columna de código de construcción" solo cuando en la columna "Nombre de la habitación" hay texto que contiene "Open Office". Esto no puede ser exactamente "Open Office" pero puede ser parte de ella, por ejemplo, "Open Office Waiting Room o "Open Office Storage Area" y así sucesivamente. Podría haber 20 variantes diferentes. Ejemplo de datos a continuación y resultado esperado.

Código de construcciónNombre del edificioCódigo de pisoCódigo de habitaciónNombre de la habitaciónResultado esperado en la columna de código de Buidling
A1Edificio de pruebasLg101
A1Edificio de pruebasLg102Almacenamiento de Office abiertaD1
A1Edificio de pruebasLg103Oficina abierta D1
A1Edificio de pruebasLg104Gran espacio de oficina abiertaD1
A1Edificio de pruebasLg105
A1Edificio de pruebasLg105.1
A1Edificio de pruebasLg105.2Sala de espera de oficina abiertaD1
A1Edificio de pruebasLg105.3Sala de espera de oficina abiertaD1
A1Edificio de pruebasLg105.4Aseos - Oficina AbiertaD1
A1Edificio de pruebasLg105.5Oficina abiertaD1
A1Edificio de pruebasLg106
A1Edificio de pruebasLg107
A1Edificio de pruebasLg108
A1Edificio de pruebasLg201
A1Edificio de pruebasLg201.1Tiny Open Office SpaceD1
A1Edificio de pruebas1201.2Utiliites
A1Edificio de pruebas1201.3Utiliites
A1Edificio de pruebas1105.3Cocina
A1Edificio de pruebas1105.4Sala de Oración
A1Edificio de pruebas1105.5
A1Edificio de pruebas1106Mail Room
A1Edificio de pruebas2107Armario de almacenamiento
A1Edificio de pruebas3108Null
A1Edificio de pruebas4201Null
A1Edificio de pruebas4201.1Oficina Abierta de Tea PointD1
A1Edificio de pruebas8201.2
A1Edificio de pruebas10201.3
A1Edificio de pruebas10201.4Oficina
A3Edificio 311201.5Oficina
A3Edificio 32301Oficina
A3Edificio 34301.1Armario de almacenamiento
A3Edificio 36301.2Sala de espera
A3Edificio 32301.3

¡Espero que esto tenga sentido! Soy un novato y realmente no sé cómo hacer el código para él!

Salud

Rob

1 ACCEPTED SOLUTION
Anonymous
Not applicable

@DavisBI Lo siento... la copia de formato de Excel estaba por todas partes. He hecho como **bleep** en su lugar.

Salud

Rob

rob1975_0-1605478208811.png

View solution in original post

5 REPLIES 5
v-yangliu-msft
Community Support
Community Support

Hola @rob1975 ,

Estos son los pasos que puede seguir:

1. Cree una columna calculcada.

Expected Result in Buidling Code Column = IF(CONTAINSSTRING('Table'[Room Name],"Open Office"),"D1",BLANK())

2. Resultado.

v-yangliu-msft_0-1605518969112.jpeg

Puede descargar el archivo PBIX desde aquí.

Saludos

Liu Yang

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Anonymous
Not applicable

@DavisBI Lo siento... la copia de formato de Excel estaba por todas partes. He hecho como **bleep** en su lugar.

Salud

Rob

rob1975_0-1605478208811.png

Hola @rob1975

Este código hace lo que necesita. Copiar/pegarlo en una consulta en blanco o descargar este archivo PBIX

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("pZRBTsMwEEWvYmVdqiaOS7eFBQtArSCIRdWFFaZhJGNXibvobTgLJ8NOkyihje2KjZXI/3k8/0+y2UTLOJpEGVSa3B1QfKAszPvTg1nimd2KthO3KDHrag+SrHY7zIG8alXyArwcHXI/314itY+8LIAM6u157q/GQlph06CO2fRvz+8ctZGQF6W+AnD6P9z6kCkUoCty0/cigGXD0l5iHmLIbYho4RclIRNnRHVMGcrjNYMQN6zN7k2jQNRQuaauBeg1QBvvI+r8E6RfbMNcl/wIpSf+FnBPctyl9sxReI5MuvSaj5bcC1WBHidoF6U8CDGuS7s0g3SnQIGTtUKpw0Z60cvT4cesl2KAzF6oX9lirY7U3bdjwXxKezFae+CUpSdZbcGlGM6AeQPY88//HGPXaAzY/gI=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Building Code" = _t, #"Building Name" = _t, #"Floor Code" = _t, #"Room Code" = _t, #"Room Name" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Building Code", type text}, {"Building Name", type text}, {"Floor Code", type text}, {"Room Code", type number}, {"Room Name", type text}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each if [Building Code] = "A1" and Text.Contains([Room Name], "Open Office") then "D1" else [Building Code]),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Building Code"}),
    #"Reordered Columns" = Table.ReorderColumns(#"Removed Columns",{"Custom", "Building Name", "Floor Code", "Room Code", "Room Name"}),
    #"Renamed Columns" = Table.RenameColumns(#"Reordered Columns",{{"Custom", "Building Code"}})
in
    #"Renamed Columns"

building-codes.png

saludos

Phil


Si respondí a su pregunta por favor marque mi post como la solución.
Si mi respuesta ayudó a resolver su problema, déle un kudos haciendo clic en Thumbs Up.



Did I answer your question? Then please mark my post as the solution.
If I helped you, click on the Thumbs Up to give Kudos.


Blog :: YouTube Channel :: Connect on Linkedin


Proud to be a Super User!


Anonymous
Not applicable

Muchas gracias por este @DavisBI . Lo intenté, pero fracasé. Tal vez lo que publiqué no era exactamente la manera de explicarlo

Voy a poner el resultado que espero como lo hice arriba, pero un poco más claro. Tal vez no estoy a la mejor de estas cosas de codificación.

Salud

Rob

Antes Después
Código de construcciónNombre del edificioCódigo de pisoCódigo de habitaciónNombre de la habitación Código de construcciónNombre del edificioCódigo de pisoCódigo de habitaciónNombre de la habitación
A1Edificio de pruebasLg101 A1Edificio de pruebasLg101
A1Edificio de pruebasLg102Almacenamiento de Office abierta D1Edificio de pruebasLg102Almacenamiento de Office abierta
A1Edificio de pruebasLg103Oficina abierta D1Edificio de pruebasLg103Oficina abierta
A1Edificio de pruebasLg104Gran espacio de oficina abierta D1Edificio de pruebasLg104Gran espacio de oficina abierta
A1Edificio de pruebasLg105 A1Edificio de pruebasLg105
A1Edificio de pruebasLg105.1 A1Edificio de pruebasLg105.1
A1Edificio de pruebasLg105.2Sala de espera de oficina abierta D1Edificio de pruebasLg105.2Sala de espera de oficina abierta
A1Edificio de pruebasLg105.3Sala de espera de oficina abierta D1Edificio de pruebasLg105.3Sala de espera de oficina abierta
A1Edificio de pruebasLg105.4Aseos - Oficina Abierta D1Edificio de pruebasLg105.4Aseos - Oficina Abierta
A1Edificio de pruebasLg105.5Oficina abierta D1Edificio de pruebasLg105.5Oficina abierta
A1Edificio de pruebasLg106 A1Edificio de pruebasLg106
A1Edificio de pruebasLg107 A1Edificio de pruebasLg107
A1Edificio de pruebasLg108 A1Edificio de pruebasLg108
A1Edificio de pruebasLg201 A1Edificio de pruebasLg201
A1Edificio de pruebasLg201.1Tiny Open Office Space D1Edificio de pruebasLg201.1Tiny Open Office Space
A1Edificio de pruebas1201.2Utiliites A1Edificio de pruebas1201.2Utiliites
A1Edificio de pruebas1201.3Utiliites A1Edificio de pruebas1201.3Utiliites
A1Edificio de pruebas1105.3Cocina A1Edificio de pruebas1105.3Cocina
A1Edificio de pruebas1105.4Sala de Oración A1Edificio de pruebas1105.4Sala de Oración
A1Edificio de pruebas1105.5 A1Edificio de pruebas1105.5
A1Edificio de pruebas1106Mail Room A1Edificio de pruebas1106Mail Room
A1Edificio de pruebas2107Armario de almacenamiento A1Edificio de pruebas2107Armario de almacenamiento
A1Edificio de pruebas3108Null A1Edificio de pruebas3108Null
A1Edificio de pruebas4201Null A1Edificio de pruebas4201Null
A1Edificio de pruebas4201.1Oficina Abierta de Tea Point D1Edificio de pruebas4201.1Oficina Abierta de Tea Point
A1Edificio de pruebas8201.2 A1Edificio de pruebas8201.2
A1Edificio de pruebas10201.3 A1Edificio de pruebas10201.3
A1Edificio de pruebas10201.4Oficina A1Edificio de pruebas10201.4Oficina
A3Edificio 311201.5Oficina A3Edificio 311201.5Oficina
A3Edificio 32301Oficina A3Edificio 32301Oficina
A3Edificio 34301.1Armario de almacenamiento A3Edificio 34301.1Armario de almacenamiento
A3Edificio 36301.2Sala de espera A3Edificio 36301.2Sala de espera
A3Edificio 32301.3 A3Edificio 32301.3

DavisBI
Solution Specialist
Solution Specialist

Hola, @rob1975

Puede utilizar CONTAINSSTRING()

Result =
IF(
    CONTAINSSTRING('Sheet1'[Building Name],"Open Office")
    ,"D1"
    ,BLANK()
)

Resultado como se muestra a continuación:

20201113150653.png

Marque este post como solución si esto ayuda, 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.