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.
M expertos por favor ayudan aquí! @ImkeF, @Greg_Deckler
Tengo una columna de Materiales de Papel (abajo) que contiene Peso del Material.
para, por ejemplo, "kreda mat250gsm" está teniendo "250gsm" como peso del material. El orden/secuencia de estas 2 cosas en una celda no es fija.
Id. de trabajo | Materiales |
1 | Cable M.S de 2,95 y 2,64 mm |
2 | PVC de 3 mm |
8 | 135 grs hv seda mc |
10 | papel 120 g/m2 |
12 | PS 2mm |
14 | mat de tiza250gsm |
14 | Material: Papel sin madera FSC de 70gsm |
16 | 115gsm de seda |
17 | papel recubierto mate 250GSM |
18 | mat kuse135gr |
23 | 80 gsm Ozono fsc crédito mixto |
24 | Cartulina gráfica 400 gr |
25 | Apagón de vinilo blanco 0,10 mm |
29 | SINTRA 3mm |
31 | 0.6mm Brillo Vinilo Recubierto Magnético |
34 | 200 gr/sqm impresión de imagen mate |
Luego creé una LISTA de valores (abajo) que necesitan ser buscados en esa columna Material y en base a esto pude extraer el Peso Material. Creé esta LISTA para que se pudiera expandir en función de más valores coincidentes.
Búsqueda |
mil |
Mm |
Gsm |
Gr |
Ahora con estas 2 cosas (1 tabla y 1 lista), quiero crear una función que tome esta LISTA como entrada y busque los valores de esta LISTA en cada celda de la columna Material y devuelva el peso exacto del material como se muestra a continuación.
Id. de trabajo | Materiales | Resultado |
1 | Cable M.S de 2,95 y 2,64 mm | 2,64 mm |
2 | PVC de 3 mm | 3 mm |
8 | 135 grs hv seda mc | 135 gr |
10 | papel 120 g/m2 | 120 g/m2 |
12 | PS 2mm | 2 mm |
14 | mat de tiza250gsm | 250 g/m2 |
14 | Material: Papel sin madera FSC de 70gsm | 70 g/m2 |
16 | 115gsm de seda | 115gsm |
17 | papel recubierto mate 250GSM | 250 g/m2 |
18 | mat kuse135gr | 135 gr |
23 | 80 gsm Ozono fsc crédito mixto | 80 g/m2 |
24 | Cartulina gráfica 400 gr | 400 gr |
25 | Apagón de vinilo blanco 0,10 mm | 0,10 mm |
29 | SINTRA 3mm | 3 mm |
31 | 0.6mm Brillo Vinilo Recubierto Magnético | 0,6 mm |
34 | 200 gr/sqm impresión de imagen mate | 200 gr |
Solved! Go to Solution.
Hola @iamprajot
pegue el siguiente código en el editor avanzado y siga los pasos:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("PZHNUoMwFIVf5QzrDkIo/XGnzNhxgXbE6abTRRoCZkigBrDq2/gsvpg3hHF5z/1ycnJyPAZxsAhYuE3B2xIsXC1hDPKwwFVZGZwWx4ARkZC4P2TTvKE5TlLUtsfbB3qlGxgxreKIdhd+kRYxi1D3xsvOYl+AmXle0txYWXIYPrA0+gfdIueDtIrrW6zdAg9FhmvXlZWVEpO5Z1cuR5w6pKAMXlyTSJ6DhOjIp/QHQHfsitwjG4+gGXtJ76i9HUtI3kyZ8fzdtRJVL2DUJ3kIiqoGj7mEGbfDqFXLqYPfn0oJjmVER2enlJCDapXG2fJWdDhrLppuHBCFcYS5BLYlrHh8en25QzJrifuNKFxR2zvd9T3I5ksj80/Jed3KQfmqExeETbfevBvcK11KW9pRNK5TCnv6Aw==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Job Id" = _t, Materials = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Job Id", Int64.Type}, {"Materials", type text}}),
#"Search Terms" = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wys3MUYrVAdK5YCq9GEoXKcXGAgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Search = _t]),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each #"Search Terms"),
#"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {"Search"}, {"Search"}),
#"Added Custom1" = Table.AddColumn(#"Expanded Custom", "Position", each Text.PositionOf(Text.Lower([Materials]),Text.Lower([Search]))),
#"Filtered Rows" = Table.SelectRows(#"Added Custom1", each ([Position] <> -1)),
#"Added Custom2" = Table.AddColumn(#"Filtered Rows", "Number", each Text.Range([Materials],0,[Position])),
#"Trimmed Text" = Table.TransformColumns(#"Added Custom2",{{"Number", Text.Trim, type text}}),
#"Extracted Text After Delimiter" = Table.TransformColumns(#"Trimmed Text", {{"Number", each Text.AfterDelimiter(_, " ", {0, RelativePosition.FromEnd}), type text}}),
#"Trimmed Text1" = Table.TransformColumns(#"Extracted Text After Delimiter",{{"Number", each Text.Select(_, {"0".."9", ",", "."}), type text}}),
#"Merged Columns" = Table.CombineColumns(#"Trimmed Text1",{"Number", "Search"},Combiner.CombineTextByDelimiter(" ", QuoteStyle.None),"Merged")
in
#"Merged Columns"
Verás que #24 es un problema. Si se te ocurrir una regla que funcione, avísame.
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
M expertos por favor ayudar aquí! @ImkeF , @Greg_Deckler
Tengo una columna de Materiales de papel (abajo) que contiene peso material.
por ejemplo, "kreda mat250gsm" es tener "250gsm" como peso material. El orden/secuencia de estas 2 cosas en una celda no es fijo.
Id. de trabajo | materiales |
1 | Alambre M.S de 2,95 y 2,64 mm |
2 | PVC de 3 mm |
8 | 135 grs hv seda mc |
10 | papel 120 gsm |
12 | PS 2 mm |
14 | estera de tiza250gsm |
14 | Material: 70gsm PAPEL SIN MADERA FSC |
16 | Seda de 115gsm |
17 | papel recubierto mate 250GSM |
18 | alimentos kuse135gr |
23 | 80 gsm Ozono fsc crédito mixto |
24 | Cartulina gráfica 400 gr |
25 | Apagón de vinilo blanco 0,10 mm |
29 | SINTRA 3 mm |
31 | 0.6mm Vinilo brillante recubierto magnético |
34 | Impresión de imagen de 200 gr/m² mate |
Luego creé una LISTA de valores (a continuación) que deben buscarse en esa columna Material y, en base a esto, pude extraer el Peso material. Creé esta LISTA para que pudiera expandirse en función de más valores coincidentes.
buscar |
mil |
milímetro |
gsm |
Gr |
Ahora con estas 2 cosas (1 tabla y 1 lista), quiero crear una función que tome esta LISTA como entrada y buscar los valores de esta LISTA en cada celda de la columna Material y devolver el peso exacto del material como se indica a continuación.
Id. de trabajo | materiales | resultado |
1 | Alambre M.S de 2,95 y 2,64 mm | 2,64 mm |
2 | PVC de 3 mm | 3 milímetros |
8 | 135 grs hv seda mc | 135 gr |
10 | papel 120 gsm | 120 gsm |
12 | PS 2 mm | 2 milímetros |
14 | estera de tiza250gsm | 250 gsm |
14 | Material: 70gsm PAPEL SIN MADERA FSC | 70 gsm |
16 | Seda de 115gsm | 115gsm |
17 | papel recubierto mate 250GSM | 250 gsm |
18 | alimentos kuse135gr | 135 gr |
23 | 80 gsm Ozono fsc crédito mixto | 80 gsm |
24 | Cartulina gráfica 400 gr | 400 gr |
25 | Apagón de vinilo blanco 0,10 mm | 0,10 mm |
29 | SINTRA 3 mm | 3 milímetros |
31 | 0.6mm Vinilo brillante recubierto magnético | 0,6 mm |
34 | Impresión de imagen de 200 gr/m² mate | 200 gr |
Hola @iamprajot
pegue el siguiente código en el editor avanzado y siga los pasos:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("PZHNUoMwFIVf5QzrDkIo/XGnzNhxgXbE6abTRRoCZkigBrDq2/gsvpg3hHF5z/1ycnJyPAZxsAhYuE3B2xIsXC1hDPKwwFVZGZwWx4ARkZC4P2TTvKE5TlLUtsfbB3qlGxgxreKIdhd+kRYxi1D3xsvOYl+AmXle0txYWXIYPrA0+gfdIueDtIrrW6zdAg9FhmvXlZWVEpO5Z1cuR5w6pKAMXlyTSJ6DhOjIp/QHQHfsitwjG4+gGXtJ76i9HUtI3kyZ8fzdtRJVL2DUJ3kIiqoGj7mEGbfDqFXLqYPfn0oJjmVER2enlJCDapXG2fJWdDhrLppuHBCFcYS5BLYlrHh8en25QzJrifuNKFxR2zvd9T3I5ksj80/Jed3KQfmqExeETbfevBvcK11KW9pRNK5TCnv6Aw==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Job Id" = _t, Materials = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Job Id", Int64.Type}, {"Materials", type text}}),
#"Search Terms" = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wys3MUYrVAdK5YCq9GEoXKcXGAgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Search = _t]),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each #"Search Terms"),
#"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {"Search"}, {"Search"}),
#"Added Custom1" = Table.AddColumn(#"Expanded Custom", "Position", each Text.PositionOf(Text.Lower([Materials]),Text.Lower([Search]))),
#"Filtered Rows" = Table.SelectRows(#"Added Custom1", each ([Position] <> -1)),
#"Added Custom2" = Table.AddColumn(#"Filtered Rows", "Number", each Text.Range([Materials],0,[Position])),
#"Trimmed Text" = Table.TransformColumns(#"Added Custom2",{{"Number", Text.Trim, type text}}),
#"Extracted Text After Delimiter" = Table.TransformColumns(#"Trimmed Text", {{"Number", each Text.AfterDelimiter(_, " ", {0, RelativePosition.FromEnd}), type text}}),
#"Trimmed Text1" = Table.TransformColumns(#"Extracted Text After Delimiter",{{"Number", each Text.Select(_, {"0".."9", ",", "."}), type text}}),
#"Merged Columns" = Table.CombineColumns(#"Trimmed Text1",{"Number", "Search"},Combiner.CombineTextByDelimiter(" ", QuoteStyle.None),"Merged")
in
#"Merged Columns"
Verás que #24 es un problema. Si se te ocurrir una regla que funcione, avísame.
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
Muchas @ImkeF.
Mi decisión de buscar tu ayuda fue correcta. Está funcionando, ahora puedo usar esta lógica para modificar y extraer aún más la información requerida.
Pensé que List.Transform y List.Accumulate se usarán aquí y no sé cómo usarlos.
Si eso no es demasiado, entonces lo único que necesito de usted es si usted podría decirme cómo puedo convertir esto a una función ya que estoy usando una lista de valores y no hay ningún parámetro utilizado en esto para convertir esto en una función.
Me alegro de saber que esto ayudó.
Creo que debe haber algunos tutoriales sobre la conversión de la función en el www mientras tanto.
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
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 |
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |