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
Estoy creando un modelo de datos con datos contables, lo que significa que hay información que debe ser anonimizada. Tengo 2 mesas:
Tabla "Facturas"
Nombre del proveedor | ID de proveedor | Factura Nr. | Importe de la factura | Divisa |
AAA | 111 | 123123 | 1000 | EURO |
BBB | 222 | 321321 | 2000 | EURO |
CCC | 333 | 456456 | 3000 | USD |
AAA | 111 | 654654 | 500 | USD |
CCC | 333 | 789789 | 800 | GBP |
Luego tengo otra tabla: "Proveedores internos"
ID de proveedor |
AAA |
BBB |
DDD |
EEE |
Necesito crear una columna calculada que agregará el "Nombre del proveedor alternativo" buscando la tabla "Proveedores internos" y si el proveedor está allí, agregará el texto "INTERNO" y, si no, tomará el nombre de "Nombre del proveedor".
Ahora, el problema es que necesito eliminar la columna "Nombre del proveedor" de la tabla "Facturas" para que los usuarios finales no puedan ver los nombres originales. Ocultar la columna no es muy útil, ya que los usuarios pueden usar medidas (como SELECTEDVALUE) para obtener los datos. Tan pronto como elimino la columna, mi caluculación en "Nombre de proveedor alternativo" está fallando.
El resultado deseado es el siguiente:
Nombre de proveedor alternativo | ID de proveedor | Factura Nr. | Importe de la factura | Divisa |
INTERNO | 111 | 123123 | 1000 | EURO |
INTERNO | 222 | 321321 | 2000 | EURO |
CCC | 333 | 456456 | 3000 | USD |
INTERNO | 111 | 654654 | 500 | USD |
CCC | 333 | 789789 | 800 | GBP |
¿Hay alguna solución para eso (por ejemplo, Power BI realizará el cálculo primero y luego quitará la columna)?
¡Gracias por cualquier sugerencia!
Ivan
Solved! Go to Solution.
Creé un archivo pbix de muestra (ver archivo adjunto) para usted basado en los datos de tabla proporcionados, verifique si eso es lo que desea.
1. Combine estas dos tablas en función de la columna [Nombre del proveedor] de la tabla "Facturas" y la columna [ID del proveedor] de la tabla "Proveedores internos"
2. Agregue una columna personalizada para actualizar la base de valores en las condiciones
3. Elimine la columna orignial [Nombre del proveedor] en la tabla Facturas
Los códigos completos aplicados de la siguiente manera:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("VY07DoAgEETvsjUFLB+xBDS2RkNFuP81nMUGkpdlJryF1iilRIqMMTLZAglaaxxnfairRjlnNGbGtGyA1NUppcitlXXnA5D6O/U9hjP/FbwDCH5R5me2uAOEOJQr39T7Bw==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Vendor Name" = _t, #"Vendor ID" = _t, #"Invoice Nr." = _t, #"Invoice Amount" = _t, Currency = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Vendor Name", type text}, {"Vendor ID", Int64.Type}, {"Invoice Nr.", Int64.Type}, {"Invoice Amount", Int64.Type}, {"Currency", type text}}),
#"Merged Queries" = Table.NestedJoin(#"Changed Type", {"Vendor Name"}, #"Internal vendors", {"Vendor ID"}, "Internal vendors", JoinKind.LeftOuter),
#"Expanded Internal vendors" = Table.ExpandTableColumn(#"Merged Queries", "Internal vendors", {"Vendor ID"}, {"Vendor ID.1"}),
#"Added Custom" = Table.AddColumn(#"Expanded Internal vendors", "Alternative Vendor Name", each if [Vendor ID.1]=null then [Vendor Name] else "INTERNAL" ),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Vendor ID.1", "Vendor Name"})
in
#"Removed Columns"
Saludos
Creé un archivo pbix de muestra (ver archivo adjunto) para usted basado en los datos de tabla proporcionados, verifique si eso es lo que desea.
1. Combine estas dos tablas en función de la columna [Nombre del proveedor] de la tabla "Facturas" y la columna [ID del proveedor] de la tabla "Proveedores internos"
2. Agregue una columna personalizada para actualizar la base de valores en las condiciones
3. Elimine la columna orignial [Nombre del proveedor] en la tabla Facturas
Los códigos completos aplicados de la siguiente manera:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("VY07DoAgEETvsjUFLB+xBDS2RkNFuP81nMUGkpdlJryF1iilRIqMMTLZAglaaxxnfairRjlnNGbGtGyA1NUppcitlXXnA5D6O/U9hjP/FbwDCH5R5me2uAOEOJQr39T7Bw==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Vendor Name" = _t, #"Vendor ID" = _t, #"Invoice Nr." = _t, #"Invoice Amount" = _t, Currency = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Vendor Name", type text}, {"Vendor ID", Int64.Type}, {"Invoice Nr.", Int64.Type}, {"Invoice Amount", Int64.Type}, {"Currency", type text}}),
#"Merged Queries" = Table.NestedJoin(#"Changed Type", {"Vendor Name"}, #"Internal vendors", {"Vendor ID"}, "Internal vendors", JoinKind.LeftOuter),
#"Expanded Internal vendors" = Table.ExpandTableColumn(#"Merged Queries", "Internal vendors", {"Vendor ID"}, {"Vendor ID.1"}),
#"Added Custom" = Table.AddColumn(#"Expanded Internal vendors", "Alternative Vendor Name", each if [Vendor ID.1]=null then [Vendor Name] else "INTERNAL" ),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Vendor ID.1", "Vendor Name"})
in
#"Removed Columns"
Saludos
Cree la columna calculada en Power Query, luego podrá eliminar de forma segura la columna original y no se expondrá en su informe.
Combine la tabla de datos con la tabla Proveedores internos y, a continuación, cree una nueva columna personalizada. Si el valor de la columna combinada es null, utilice el nombre de proveedor original, de lo contrario utilice "INTERNAL". A continuación, puede eliminar la columna original y cualquier otra columna introducida durante la combinación.
Consulte el artículo a continuación. Lo he usado anteriormente en mi caso. Espero que te ayude a ti también.
https://eriksvensen.wordpress.com/2019/02/28/powerquery-replicate-doing-an-excel-vlookup-in-m/
Gracias
Samarth
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 | |
1 | |
1 |