The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Muy buenas y gracias por ayudarme de antemano,
Tengo una columna con unos valores determinados, y me gustaría encontrar en qué intervalo se encuentra este valor, dicho intervalo se especifica en otra tabla. Finalmente, quiero que devuelva el valor determinado para ese intervalo.
Especifico datos a continuación:
Columna valores a buscar:
Tabla --> Líneas facturas venta
Tabla con los intervalos y el resultado a devolver:
Tabla --> Escalado Puntos
El cuadro rojo marca el intervalo, y el verde, el resultado que ha de devolver.
Me gustaría realizar la consulta para cada valor de la columna "puntos teóricos" de la tabla "Líneas facturas venta", y que se generara una columna en la tabla "Líneas facturas venta" para cada valor que consultemos.
Por ejemplo, el resultado esperado es el siguiente:
Espero que puedan ayudarme con esta consulta,
Gracias y saludos,
Solved! Go to Solution.
Cambia "Let" por "let"
Solucionado,
Muchísimas graacias por la ayuda y sobretodo por la paciencia
Saludos,
LÍNEAS DE FACTURA DE VENTA
Let
Source = Sql.Database("192.168.15.30", "Dynamics365_BC130_CU03"),
#"dbo_GLOBAL FUN PART REAL$Sales Invoice Line" = Source{[Schema="dbo",Item="GLOBAL FUN PART REAL$Sales Invoice Line"]}[Data],
#"Other columns removed" = Table.SelectColumns(#"dbo_GLOBAL FUN PART REAL$Sales Invoice Line",{"Document No_", "Sell-to Customer No_", "No_", "Location Code", "Description", "Quantity", "Unit Price", "VAT _", "Line Discount _", "Line Discount Amount", "Amount", "Amount Including VAT", "Purch_ Document No_"}),
#"Renamed Columns" = Table.RenameColumns(#"Other Columns Removed",{{"Document No_", "INVOICE ID"}, {"Sell-to Customer No_", "CUSTOMER ID"}, {"No_", "PRODUCT ID"}, {"Location Code", "WAREHOUSE ID"}, {"Description", "DESCRIPTION"}, {"Quantity", "QUANTITY"}, {"Unit Price", "UNIT PRICE"}}),
#"Inserted Division" = Table.AddColumn(#"Renamed Columns", "Division", each [VAT _] / 100, type number),
#"Renamed Columns1" = Table.RenameColumns(#"Inserted Split",{{"Split", "VAT"}}),
#"Reordered Columns" = Table.ReorderColumns(#"Renamed Columns1",{"INVOICE ID", "CUSTOMER ID", "PRODUCT ID", "WAREHOUSE ID", "DESCRIPTION", "QUANTITY", "UNIT PRICE", "VAT", "VAT _", "Line Discount _", "Line Discount Amount", "Amount", "Amount Including VAT", "Purch_ Document No_"}),
#"Removed Columns" = Table.RemoveColumns(#"Reordered Columns",{"VAT_", "Line Discount _", "Line Discount Amount"}),
#"Renamed Columns2" = Table.RenameColumns(#"Columns Removed",{{"Amount", "TOTAL WITHOUT VAT"}, {"Amount Including VAT", "TOTAL WITH VAT"}, {"Purch_ Document No_", "PURCHASE PACKING SLIP"}}),
#"Type Changed" = Table.TransformColumnTypes(#"Renamed Columns2",{{"CUSTOMER ID", Int64.Type}, {"WAREHOUSE ID", Int64.Type}, {"QUANTITY", Int64.Type}, {"UNIT PRICE", Currency.Type}, {"VAT", Percentage.Type}, {"TOTAL WITHOUT VAT", Currency.Type}, {"TOTAL INCLUDING VAT", Currency.Type}}),
#"Filtered rows" = Table.SelectRows(#"Type changed", each Text.StartsWith([PRODUCT ID], "A") or Text.StartsWith([PRODUCT ID], "R") or Text.StartsWith([PRODUCT ID], "M") or Text.StartsWith([PRODUCT ID], "O")),
#"Conditional Column Added" = Table.AddColumn(#"Filtered Rows", "Product Type", each if Text.StartsWith([PRODUCT ID], "A") then "GIFTS" else if Text.StartsWith([PRODUCT ID], "M") then "MACHINES" else if Text.StartsWith([PRODUCT ID], "R") then "SPARE PARTS" else if Text.StartsWith([PRODUCT ID], "OR") then "LEISURE CENTER SOLUTIONS" else if Text.StartsWith([PRODUCT ID], "C") then "BIRTHDAY" else if Text.StartsWith([PRODUCT ID], "B") then "BAR" else "ERROR"),
#"Added Custom" = Table.AddColumn(#"Conditional Column Added", "ACTUAL POINTS", (k)=> Table.SelectRows(#"POINT SCALING",each [From value]<=k[Target Points] and k[Target Points]< [Up to Value])[Points]{0},Int64.Type)
in
#"Added Custom"
ESCALADO DE PUNTOS
Let
Source = Excel.Workbook(File.Contents("\\SERVAPP\Recreational Apps\Shopping Central\powerbi_backup\ESC. POINTS.xlsx"), null, true),
Hoja1_Sheet = Source{[item="Sheet1",kind="Sheet"]}[Data],
#"Promoted Headers" = Table.PromoteHeaders(Hoja1_Sheet, [PromoteAllScalars=true]),
#"Type changed" = Table.TransformColumnTypes(#"Promoted Headers",{{"From Value", Int64.Type}, {"To Value", Int64.Type}, {"Points", Int64.Type}})
in
#"Type changed"
Buenas tardes,
Para LÍNEAS FACTURAS VENTA, me aparece el siguiente error:
Y para escalado de puntos aparece el mismo error
Espero su ayuda,
Gracias de antemano
Le proporcioné el código basado en sus datos de muestra. Necesitas cambiar tu propia fuente.
¿Cómo puedo modificarlo?
Este es el código que tengo actualmente para las 2 tablas, incluyendo el que usted me facilita.
LÍNEAS FACTURAS VENTA
let
Origen = Sql.Database("192.168.15.30", "Dynamics365_BC130_CU03"),
#"dbo_GLOBAL FUN PART REAL$Sales Invoice Line" = Origen{[Schema="dbo",Item="GLOBAL FUN PART REAL$Sales Invoice Line"]}[Data],
#"Otras columnas quitadas" = Table.SelectColumns(#"dbo_GLOBAL FUN PART REAL$Sales Invoice Line",{"Document No_", "Sell-to Customer No_", "No_", "Location Code", "Description", "Quantity", "Unit Price", "VAT _", "Line Discount _", "Line Discount Amount", "Amount", "Amount Including VAT", "Purch_ Document No_"}),
#"Columnas con nombre cambiado" = Table.RenameColumns(#"Otras columnas quitadas",{{"Document No_", "ID FACTURA"}, {"Sell-to Customer No_", "ID CLIENTE"}, {"No_", "ID PRODUCTO"}, {"Location Code", "ID ALMACÉN"}, {"Description", "DESCRIPCIÓN"}, {"Quantity", "CANTIDAD"}, {"Unit Price", "PRECIO UNITARIO"}}),
#"División insertada" = Table.AddColumn(#"Columnas con nombre cambiado", "División", each [VAT _] / 100, type number),
#"Columnas con nombre cambiado1" = Table.RenameColumns(#"División insertada",{{"División", "IVA"}}),
#"Columnas reordenadas" = Table.ReorderColumns(#"Columnas con nombre cambiado1",{"ID FACTURA", "ID CLIENTE", "ID PRODUCTO", "ID ALMACÉN", "DESCRIPCIÓN", "CANTIDAD", "PRECIO UNITARIO", "IVA", "VAT _", "Line Discount _", "Line Discount Amount", "Amount", "Amount Including VAT", "Purch_ Document No_"}),
#"Columnas quitadas" = Table.RemoveColumns(#"Columnas reordenadas",{"VAT _", "Line Discount _", "Line Discount Amount"}),
#"Columnas con nombre cambiado2" = Table.RenameColumns(#"Columnas quitadas",{{"Amount", "TOTAL SIN IVA"}, {"Amount Including VAT", "TOTAL CON IVA"}, {"Purch_ Document No_", "ID ALBARÁN COMPRA"}}),
#"Tipo cambiado" = Table.TransformColumnTypes(#"Columnas con nombre cambiado2",{{"ID CLIENTE", Int64.Type}, {"ID ALMACÉN", Int64.Type}, {"CANTIDAD", Int64.Type}, {"PRECIO UNITARIO", Currency.Type}, {"IVA", Percentage.Type}, {"TOTAL SIN IVA", Currency.Type}, {"TOTAL CON IVA", Currency.Type}}),
#"Filas filtradas" = Table.SelectRows(#"Tipo cambiado", each Text.StartsWith([ID PRODUCTO], "A") or Text.StartsWith([ID PRODUCTO], "R") or Text.StartsWith([ID PRODUCTO], "M") or Text.StartsWith([ID PRODUCTO], "O")),
#"Columna condicional agregada" = Table.AddColumn(#"Filas filtradas", "Tipo Producto", each if Text.StartsWith([ID PRODUCTO], "A") then "REGALOS" else if Text.StartsWith([ID PRODUCTO], "M") then "MÁQUINAS" else if Text.StartsWith([ID PRODUCTO], "R") then "RECAMBIOS" else if Text.StartsWith([ID PRODUCTO], "O") then "SOLUCIONES CENTROS DE OCIO" else if Text.StartsWith([ID PRODUCTO], "C") then "CUMPLEAÑOS" else if Text.StartsWith([ID PRODUCTO], "B") then "BAR" else "ERROR"),
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("tZBNCsJADEavEroeYZI0085y8B/aCm1BUDyCFMQTeB5P5UnMFBW7tNjFJFlk3vfI8ZiQJZxZZM4Sk6ReS0Bi73Sw+tpwCNC0oYZ9qBtoN0soQ7UIxa7ehgqYBMpC95C0kPEpPG53HVkM5ZFIxvXQeR8jPsZYQ6htvV21jfbVpTsDxY9w7UBeBEKfnMxbkJAjDuVbEPnvhiSUjjaMmHxwQpxCUEYI0syKE37HfAT9fwU1xjlxYwVdLzi4YDaBIPNPgqcn", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"ID FACTURA" = _t, #"ID CLIENTE" = _t, #"ID PRODUCTO" = _t, #"ID ALMACÉN" = _t, DESCRIPCIÓN = _t, CANTIDAD = _t, #"PRECIO UNITARIO" = _t, #"TOTAL SIN IVA" = _t, #"TOTAL CON IVA" = _t, #"ID ALBARÁN COMPRA" = _t, IVA = _t, #"Tipo producto" = _t, RANGO = _t, #"Puntos teóricos" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"ID FACTURA", type text}, {"ID CLIENTE", Int64.Type}, {"ID PRODUCTO", type text}, {"ID ALMACÉN", Int64.Type}, {"DESCRIPCIÓN", type text}, {"CANTIDAD", Int64.Type}, {"PRECIO UNITARIO", type text}, {"TOTAL SIN IVA", Int64.Type}, {"TOTAL CON IVA", Int64.Type}, {"ID ALBARÁN COMPRA", type text}, {"IVA", Int64.Type}, {"Tipo producto", type text}, {"RANGO", type text}, {"Puntos teóricos", Int64.Type}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "PUNTOS REALES", (k)=> Table.SelectRows(#"ESCALADO PUNTOS",each [Desde valor]<=k[Puntos teóricos] and k[Puntos teóricos]< [Hasta valor])[Puntos]{0},Int64.Type)
in
#"Added Custom"
ESCALADO DE PUNTOS
let
Origen = Excel.Workbook(File.Contents("\\SERVAPP\Aplicaciones Recreativos\Central de compras\powerbi_backup\ESC. PUNTOS.xlsx"), null, true),
Hoja1_Sheet = Origen{[Item="Hoja1",Kind="Sheet"]}[Data],
#"Encabezados promovidos" = Table.PromoteHeaders(Hoja1_Sheet, [PromoteAllScalars=true]),
#"Tipo cambiado" = Table.TransformColumnTypes(#"Encabezados promovidos",{{"Desde valor", Int64.Type}, {"Hasta valor", Int64.Type}, {"Puntos", Int64.Type}}),
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("NYyxDcAwDMN+8ZzBFeC2vxj5/40iMrsQogZ2x52x4gV79ewrf54LU0F/Y5XQ39hT0J9NLoge5oLoYS6IHjaF09sf", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Desde valor" = _t, #"Hasta valor" = _t, Puntos = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Desde valor", Int64.Type}, {"Hasta valor", Int64.Type}, {"Puntos", Int64.Type}})
in
#"Changed Type"
¿Qué he de modificar para mis datos?
Gracias de antemano
Líneas de factura de venta:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("tZBNCsJADEavEroeYZI0085y8B/aCm1BUDyCFMQTeB5P5UnMFBW7tNjFJFlk3vfI8ZiQJZxZZM4Sk6ReS0Bi73Sw+tpwCNC0oYZ9qBtoN0soQ7UIxa7ehgqYBMpC95C0kPEpPG53HVkM5ZFIxvXQeR8jPsZYQ6htvV21jfbVpTsDxY9w7UBeBEKfnMxbkJAjDuVbEPnvhiSUjjaMmHxwQpxCUEYI0syKE37HfAT9fwU1xjlxYwVdLzi4YDaBIPNPgqcn", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"INVOICE ID" = _t, #"CLIENT ID" = _t, #"PRODUCT ID" = _t, #"WAREHOUSE ID" = _t, DESCRIPTION = _t, QUANTITY = _t, #"UNIT PRICE" = _t, #"TOTAL EXCLUDING VAT" = _t, #"TOTAL INCLUDING VAT" = _t, #"ID DELIVERY NOTE PURCHASE" = _t, VAT = _t, #"Type of product" = _t, RANK = _t, #"Theoretical points" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"INVOICE ID", type text}, {"CLIENT ID", Int64.Type}, {"PRODUCT ID", type text}, {"WAREHOUSE ID", Int64.Type}, {"DESCRIPTION", type text}, {"QUANTITY", Int64.Type}, {"UNIT PRICE", type text}, {"TOTAL EXCLUDING VAT", Int64.Type}, {"TOTAL INCLUDING VAT", Int64.Type}, {"ID DELIVERY NOTE PURCHASE", type text}, {"VAT", Int64.Type}, {"Type of product", type text}, {"RANK", type text}, {"Theoretical points", Int64.Type}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Real Points", (k)=> Table.SelectRows(#"Escalation Points",each [From value]<=k[Theoretical points] and k[Theoretical points]< [Up to value])[Points]{0},Int64.Type)
in
#"Added Custom"
Puntos de escalamiento:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("NYyxDcAwDMN+8ZzBFeC2vxj5/40iMrsQogZ2x52x4gV79ewrf54LU0F/Y5XQ39hT0J9NLoge5oLoYS6IHjaF09sf", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"From value" = _t, #"Up to value" = _t, Points = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"From value", Int64.Type}, {"Up to value", Int64.Type}, {"Points", Int64.Type}})
in
#"Changed Type"
Buenos días,
Al aplicar el código que me facilita, obtengo la columna que deseaba, pero solo me muestra 5 líneas. Es decir, esta funcionalidad me limita los resultados a 5 líneas, y yo necesito todas las de la tabla y las nuevas que van entrando de forma periódica.
Solo me muestra las siguientes filas para la tabla "LÍNEAS FACTURAS VENTA":
Y en la tabla ESCALADO PUNTOS sucede lo mismo, solo que en este caso me muestra 9 filas:
¿Por favor, me puede indicar como hacer que no elimine filas?
Gracias
Proporcione datos de muestra (con información confidencial eliminada) que cubran su problema o pregunta por completo, en un formato utilizable (no como una captura de pantalla). Omita cualquier cosa que no esté relacionada con el problema.
Si no está seguro de cómo hacerlo, consulte https://community.fabric.microsoft.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-...
Muestre el resultado esperado en función de los datos de muestra que proporcionó.
Si desea obtener respuestas más rápido, consulte https://community.fabric.microsoft.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447...
Tengo una columna con unos valores determinados, y me gustaría encontrar en qué intervalo se encuentra este valor, dicho intervalo se especifica en otra tabla. Finalmente, quiero que devuelva el valor determinado para ese intervalo.
Especifico datos a continuación:
Columna valores a buscar:
Tabla --> Líneas facturas venta
ID FACTURA | ID CLIENTE | ID PRODUCTO | ID ALMACÉN | DESCRIPCIÓN | CANTIDAD | PRECIO UNITARIO | TOTAL SIN IVA | TOTAL CON IVA | ID ALBARÁN COMPRA | IVA | Tipo producto | RANGO | Puntos teóricos |
2021-01337 | 49 | A12396 | 0 | TAZA STAR WARS THE MANDALORIAN 325 ML | 12 | 2,94 € | 35,28 | 42,69 | AC21-01597 | 0,21 | REGALOS | De 2 € a 5 € | 219 |
2021-02138 | 15 | A12396 | 13 | TAZA STAR WARS THE MANDALORIAN 325 ML | 12 | 2,94 € | 35,28 | 42,69 | AC21-02524 | 0,21 | REGALOS | De 2 € a 5 € | 219 |
2021-02139 | 89 | A12396 | 1 | TAZA STAR WARS THE MANDALORIAN 325 ML | 12 | 2,94 € | 35,28 | 42,69 | AC21-02525 | 0,21 | REGALOS | De 2 € a 5 € | 219 |
2022-05653 | 12 | A12396 | 9 | TAZA STAR WARS THE MANDALORIAN 325 ML | 12 | 2,94 € | 35,28 | 42,69 | AC22-06656 | 0,21 | REGALOS | De 2 € a 5 € | 219 |
2022-05663 | 19 | A12396 | 7 | TAZA STAR WARS THE MANDALORIAN 325 ML | 12 | 2,94 € | 35,28 | 42,69 | AC22-06633 | 0,21 | REGALOS | De 2 € a 5 € | 219 |
Tabla con los intervalos y el resultado a devolver:
Tabla --> Escalado Puntos
Desde valor | Hasta valor | Puntos |
60 | 80 | 80 |
80 | 100 | 100 |
100 | 125 | 125 |
125 | 150 | 150 |
150 | 175 | 175 |
175 | 200 | 200 |
200 | 225 | 225 |
225 | 250 | 250 |
250 | 275 | 275 |
La columna 1 y 2 marcan el intervalo, y la 3, los puntos a devolver
Me gustaría realizar la consulta para cada valor de la columna "puntos teóricos" de la tabla "Líneas facturas venta", y que se generara una columna en la tabla "Líneas facturas venta" para cada valor que consultemos.
Por ejemplo, el resultado esperado es el siguiente:
Puntos Teóricos | Puntos Reales |
219 | 225 |
219 | 225 |
219 | 225 |
Espero que puedan ayudarme con esta consulta,
Gracias y saludos,
Buenas tardes,
¿Me pueden dar solución a esta cuestión?
Gracias