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.
Hola a todos,
Tengo una columna que tiene los valores tales como:
COLUMNA DE CÓDIGO
XXYYZZTT |
PPRRQQSS |
.. |
.. |
.. |
Y hay otra columna en otra tabla
DATOS SUCIOS |
123123XXYYZZTT123123 |
XXYYZZTT44223xxxxxfdwe |
dadfewrerXXYYZZTT987 |
asdf324aerq |
daf33421adf |
1PPRRQQSSr2d2 |
.. |
.. |
Tengo que buscar los primeros valores de columna uno por uno y cuando encuentro el valor, tengo que extraer el primer valor antes que él, sí mismo y siguiendo 3 caracteres con él.
Las nuevas 3 columnas serían:
columna obtenida1 | columna obtenida2 | columna obtenida3 |
3 | XXYYZZTT | 123 |
t | XXYYZZTT | 442 |
r | XXYYZZTT | 987 |
Null | Null | Null |
Null | Null | Null |
1 | PPRRQQSS | R2d |
.. | .. | .. |
.. | .. | .. |
Esto es muy fácil en SQL, pero no puedo hacerlo en Power BI.
Aquí hay una captura de pantalla para que sea un poco más claro:
¡Gracias de antemano!
Solved! Go to Solution.
Hola
Por favor, pruebe esto en el Editor de consultas:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("NYo7DoAgEETvQm3DLol6C34FQihIFnqxwOOLKJPXzMwLgXHAjnPH4b21X+uwuAQ2VyEA8H5TqOVxUaKSW811Ovu2jiNdVBBEyvX8xYIogHd/dC6l1koZU4GAxfgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"DIRTY DATA" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"DIRTY DATA", type text}}),
KeyWordTable = Table.Buffer(#"Table 1"),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each let t = [DIRTY DATA] in Table.SelectRows(Table.AddColumn(KeyWordTable,"New",each Text.Replace(t,[CODE COLUMN],"#(lf)")),each Text.Contains(t,[CODE COLUMN]))),
#"Added Custom 2" = Table.AddColumn(#"Added Custom", "Custom2", each Table.ReorderColumns(Table.RenameColumns(Table.RemoveColumns(Table.AddColumn(Table.AddColumn(Table.SplitColumn([Custom], "New", Splitter.SplitTextByDelimiter("#(lf)", QuoteStyle.Csv), {"New.1", "New.2"}), "fetched column1", each Text.End([New.1],1)), "fetched column3", each Text.Start([New.2],3)),{"New.1", "New.2"}),{{"CODE COLUMN", "fetched column2"}}),{"fetched column1", "fetched column2", "fetched column3"})),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom 2",{"Custom"}),
#"Expanded Custom2" = Table.ExpandTableColumn(#"Removed Columns", "Custom2", {"fetched column1", "fetched column2", "fetched column3"}, {"Custom2.fetched column1", "Custom2.fetched column2", "Custom2.fetched column3"}),
#"Renamed Columns" = Table.RenameColumns(#"Expanded Custom2",{{"Custom2.fetched column1", "fetched column1"}, {"Custom2.fetched column2", "fetched column2"}, {"Custom2.fetched column3", "fetched column3"}}),
#"Removed Columns1" = Table.RemoveColumns(#"Renamed Columns",{"DIRTY DATA"}),
#"Replaced Value" = Table.ReplaceValue(#"Removed Columns1","",null,Replacer.ReplaceValue,{"fetched column1","fetched column2","fetched column3"})
in
#"Replaced Value"
El resultado muestra:
Aquí está mi prueba pbix:
Espero que esto pueda ayudar.
Saludos
Giotto Zhi
Hola
Por favor, pruebe esto en el Editor de consultas:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("NYo7DoAgEETvQm3DLol6C34FQihIFnqxwOOLKJPXzMwLgXHAjnPH4b21X+uwuAQ2VyEA8H5TqOVxUaKSW811Ovu2jiNdVBBEyvX8xYIogHd/dC6l1koZU4GAxfgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"DIRTY DATA" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"DIRTY DATA", type text}}),
KeyWordTable = Table.Buffer(#"Table 1"),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each let t = [DIRTY DATA] in Table.SelectRows(Table.AddColumn(KeyWordTable,"New",each Text.Replace(t,[CODE COLUMN],"#(lf)")),each Text.Contains(t,[CODE COLUMN]))),
#"Added Custom 2" = Table.AddColumn(#"Added Custom", "Custom2", each Table.ReorderColumns(Table.RenameColumns(Table.RemoveColumns(Table.AddColumn(Table.AddColumn(Table.SplitColumn([Custom], "New", Splitter.SplitTextByDelimiter("#(lf)", QuoteStyle.Csv), {"New.1", "New.2"}), "fetched column1", each Text.End([New.1],1)), "fetched column3", each Text.Start([New.2],3)),{"New.1", "New.2"}),{{"CODE COLUMN", "fetched column2"}}),{"fetched column1", "fetched column2", "fetched column3"})),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom 2",{"Custom"}),
#"Expanded Custom2" = Table.ExpandTableColumn(#"Removed Columns", "Custom2", {"fetched column1", "fetched column2", "fetched column3"}, {"Custom2.fetched column1", "Custom2.fetched column2", "Custom2.fetched column3"}),
#"Renamed Columns" = Table.RenameColumns(#"Expanded Custom2",{{"Custom2.fetched column1", "fetched column1"}, {"Custom2.fetched column2", "fetched column2"}, {"Custom2.fetched column3", "fetched column3"}}),
#"Removed Columns1" = Table.RemoveColumns(#"Renamed Columns",{"DIRTY DATA"}),
#"Replaced Value" = Table.ReplaceValue(#"Removed Columns1","",null,Replacer.ReplaceValue,{"fetched column1","fetched column2","fetched column3"})
in
#"Replaced Value"
El resultado muestra:
Aquí está mi prueba pbix:
Espero que esto pueda ayudar.
Saludos
Giotto Zhi
Hola
Escriba estas fórmulas de columna calculadas
Fetched column1 = =IFERROR(MID(Table1[DIRTY DATA],SEARCH([Fetched column2],Table1[DIRTY DATA])-1,1),BLANK())
Fetched column2 = =FIRSTNONBLANK(FILTER(VALUES(Table2[CODE COLUMN]),SEARCH(Table2[CODE COLUMN],Table1[DIRTY DATA],1,0)),1)
Fetched column3 = =if(ISBLANK(Table1[Fetched column2]),BLANK(),MID(Table1[DIRTY DATA],SEARCH([Fetched column2],Table1[DIRTY DATA])+LEN(Table1[Fetched column2]),3))
Escriba primero la fórmula Columna 2 de Fetched.
Espero que esto ayude.
@Ashish_Mathur, muchas gracias por su tiempo.
Acabo de copiar "Fetched column2" como sugeriste y pegaste, no pasa nada.
¿Qué estoy haciendo mal aquí?
Acabo de intentar con la opción "añadir nueva columna" desde arriba, pero creo que me falta algo:
Vaya a Modelado > Nueva columna.
Hola
La mía es una fórmula DAX, así que escríbela como una fórmula de columna calculada.
Muchas gracias @Ashish_Mathur,
Funcionó en la vista de informe como un encanto.
Pero no puedo ver esas columnas en "Power Query Editor". ¿Hay algún truco para usarlos allí?
Hola
No sé cómo resolver este problema en el Editor de consultas.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |