Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more.
Get startedGrow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.
Hola amigos,
Actualmente estoy atrapado en una situación en la que estoy tratando de calcular el porcentaje de tasa de ejecución de las cuentas morosas en Power BI. Tengo la morosidad listada en catergories: 1-30, 31-60, 61-90, 90+ y así sucesivamente junto con las fechas. Quiero crear una medida que devuelva el valor del % de Roll Rate para cada categoría (1-30, 31-60, 61-90, 90+ y así sucesivamente) en función de las cantidades. Pude calcularlos en Excel y he probado varias medidas en Power BI pero no tuve suerte.
Por ejemplo, para calcular la tasa de rollo de 1-30%: dividí la cantidad de 1-30 del mes actual por la cantidad actual del mes anterior. Consulte las capturas de pantalla para ver el cálculo de muestra.
Además, adjunto una tabla con un conjunto de datos de ejemplo como referencia. Agradecería mucho cualquier tipo de ayuda con esto.
¡Gracias de antemano!
Fecha | Actual | 1-30 | 1-30 Tasa de rollo % | 31-60 | 31-60 Tasa de rollo % | 61-90 | 61-90 Tasa de rollo % | 91+ | 91+ tasa de rollo % |
2019-01-31 | 57000 | 69000 | 124374 | 38732 | 8686 | ||||
2019-02-28 | 100000 | 45000 | 79% | 3984835 | 5775% | 23546 | 19% | 54366 | 140% |
2019-03-31 | 157000 | 800000 | 800% | 48757 | 108% | 55765 | 1% | 67676 | 287% |
2019-04-30 | 400700 | 700000 | 446% | 564535 | 71% | 323423 | 663% | 77667 | 139% |
2019-05-31 | 500900 | 478096 | 119% | 42454 | 6% | 5765756 | 1021% | 6567 | 2% |
2019-06-30 | 800700 | 345453 | 69% | 464567 | 97% | 45344 | 107% | 7455 | 0% |
2019-07-31 | 900100 | 2335346 | 292% | 7876876 | 2280% | 7687 | 2% | 67765 | 149% |
2019-08-31 | 1001400 | 253564 | 28% | 555466 | 24% | 665677 | 8% | 56363 | 733% |
2019-09-30 | 1120000 | 233553 | 23% | 6767687 | 2669% | 42546 | 8% | 76567 | 12% |
Solved! Go to Solution.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("VZFZjoNADETvwneQ3C5vfZYo97/GeIEJEUhuNX6uKvN+H0xrn7ROrON1qBNRVttTFwtc8oBwcNawsOPzujE+OaqNaPpFp2KHBDRPDBWryQJ7khjBdSvG/4hw9QLUrQaY5/MA5US3EXn3+w2qibYkGMKoT27mD1SvkER7pDxolzlhUen4pq51Y/pD2ojGLYrs15KQFDXv5JAa4aL6AH0kU281yEA2loKHW751ytpBK/AXjWtDicqwGc/apuZO22XZ7GUZDA92j9+1+FpO6bbhXmfrCc+f8cn6+QM=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Date = _t, Current = _t, #"1-30" = _t, #"31-60" = _t, #"61-90" = _t, #"91+ " = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type date}, {"Current", type number}, {"1-30", type number}, {"31-60", type number}, {"61-90", type number}, {"91+ ", type number}}),
#"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 0, 1, Int64.Type),
#"Added Custom" = Table.AddColumn(#"Added Index", "1-30 %", each try [#"1-30"]/#"Changed Type"[Current]{[Index]-1} otherwise null),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "31-60 %", each try [#"31-60"]/#"Changed Type"[#"1-30"]{[Index]-1} otherwise null),
#"Added Custom2" = Table.AddColumn(#"Added Custom1", "61-90 %", each try [#"61-90"]/#"Changed Type"[#"31-60"]{[Index]-1} otherwise null),
#"Added Custom3" = Table.AddColumn(#"Added Custom2", "91+ %", each try [#"91+ "]/#"Changed Type"[#"61-90"]{[Index]-1} otherwise null),
#"Changed Type1" = Table.TransformColumnTypes(#"Added Custom3",{{"1-30 %", Percentage.Type}, {"31-60 %", Percentage.Type}, {"61-90 %", Percentage.Type}, {"91+ %", Percentage.Type}})
in
#"Changed Type1"
Cómo usar este código: Crear una nueva consulta en blanco. Haga clic en "Editor avanzado". Reemplace el código en la ventana con el código proporcionado aquí. Haga clic en "Listo".
Hola Ashish,
Muchas gracias por brindar orientación. Probé esto y funcionó bien :). Sin embargo, quiero que los valores cambien de acuerdo con los filtros (como socios prestamistas, provincias, etc.) Yo elijo, ¿hay alguna solución para hacerlo dinámico según los filtros elegidos? Por ejemplo, en Excel había aplicado filtros en la tabla dinámica y cuando seleccioné diferentes opciones desplegables a través de filtros, el valor de salida cambió en consecuencia.
¡Agradezco mucho su ayuda!
¡Gracias!
"Sin embargo, quiero que los valores cambien de acuerdo con los filtros (como socios prestamistas, provincias, etc.) "
Proporcione datos de muestra desinfectados que cubran completamente su problema.
En realidad, no importa que finalmente lo descubrí. Se utilizó la función de filtro para filtrar cada days_delq y calcular a partir de ahí.
Estoy muy agradecido a ambos por brindar orientación con mi situación. ¡Elogios! :))
De nada.
Hola
Fecha | Cuentas | Socio prestamista | Monto del préstamo | Days_delq | Provincia | Nivel |
01/31/2019 | 3 | DL | 25000 | Actual | NS | T4 |
01/31/2019 | 1 | LP7 | 45000 | '1-30 | EN | T2 |
02/28/2019 | 5 | LP4 | 79000 | ACTUAL | POR QUÉ | T3 |
02/28/2019 | 8 | Lp1 | 899000 | '61-90 | NT | T2 |
03/31/2019 | 7 | LP3 | 56000 | '91+ | EN | T5 |
03/31/2019 | 4 | LP2 | 43000 | REPO | NT | T4 |
04/30/2019 | 2 | LP5 | 789000 | '31-60 | RT | T4 |
04/30/2019 | 5 | LP3 | 56000 | '61-90 | EN | T3 |
04/30/2019 | 6 | LP6 | 763400 | '91+ | POR QUÉ | T2 |
Así que mis datos en bruto se ven algo como esto, solo que es enorme en tamaño. Entonces, básicamente, convertí estos datos en una tabla dinámica y mantuve Province, Lending Partner y Tiers como filtros, luego puse la fecha en la columna archivada days_delq. en el campo de filas y el importe del préstamo en el campo de valores. Más tarde, pegó los datos de la tabla dinámica como valores debajo e insertó filas y realizó el siguiente cálculo para cada days_delq. categoría, por ejemplo, '1-30 Tasa de rollo%= dividido '1-30 cantidad del mes actual por la cantidad actual del mes anterior y así sucesivamente para todos ellos. Luego, utilizó la validación de datos y creó una lista desplegable para las fechas y adyacente a ella usó una instrucción big if para devolver el valor basado en una selección particular (captura de pantalla adjunta a continuación).
Por lo tanto, cuando se elige un determinado filtro, los valores de cada categoría cambian en consecuencia.
Lo que originalmente publiqué aquí fue solo las cantidades en cada categoría y, por lo tanto, mis filtros no funcionan. Captura de pantalla a continuación:
PS ignora los 0 en los campos ya que ese período no tenía ninguna cantidad asociada.
¡Gracias!
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("VZFZjoNADETvwneQ3C5vfZYo97/GeIEJEUhuNX6uKvN+H0xrn7ROrON1qBNRVttTFwtc8oBwcNawsOPzujE+OaqNaPpFp2KHBDRPDBWryQJ7khjBdSvG/4hw9QLUrQaY5/MA5US3EXn3+w2qibYkGMKoT27mD1SvkER7pDxolzlhUen4pq51Y/pD2ojGLYrs15KQFDXv5JAa4aL6AH0kU281yEA2loKHW751ytpBK/AXjWtDicqwGc/apuZO22XZ7GUZDA92j9+1+FpO6bbhXmfrCc+f8cn6+QM=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Date = _t, Current = _t, #"1-30" = _t, #"31-60" = _t, #"61-90" = _t, #"91+ " = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type date}, {"Current", type number}, {"1-30", type number}, {"31-60", type number}, {"61-90", type number}, {"91+ ", type number}}),
#"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 0, 1, Int64.Type),
#"Added Custom" = Table.AddColumn(#"Added Index", "1-30 %", each try [#"1-30"]/#"Changed Type"[Current]{[Index]-1} otherwise null),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "31-60 %", each try [#"31-60"]/#"Changed Type"[#"1-30"]{[Index]-1} otherwise null),
#"Added Custom2" = Table.AddColumn(#"Added Custom1", "61-90 %", each try [#"61-90"]/#"Changed Type"[#"31-60"]{[Index]-1} otherwise null),
#"Added Custom3" = Table.AddColumn(#"Added Custom2", "91+ %", each try [#"91+ "]/#"Changed Type"[#"61-90"]{[Index]-1} otherwise null),
#"Changed Type1" = Table.TransformColumnTypes(#"Added Custom3",{{"1-30 %", Percentage.Type}, {"31-60 %", Percentage.Type}, {"61-90 %", Percentage.Type}, {"91+ %", Percentage.Type}})
in
#"Changed Type1"
Cómo usar este código: Crear una nueva consulta en blanco. Haga clic en "Editor avanzado". Reemplace el código en la ventana con el código proporcionado aquí. Haga clic en "Listo".
Hola
En primer lugar, me gustaría darle las gracias por proporcionar asistencia en mi caso.
Cuando intenté pegar la consulta anterior, se me encontró con un mensaje de error. Adjunto una captura de pantalla del mensaje. Además, mi tabla de referencia es: 'Datos' (visto en la captura de pantalla), así que copié la consulta de origen desde allí y la pegué en lugar de "
Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("VZFZjoNADETvwneQ3C5vfZYo97/GeIEJEUhuNX6uKvN+H0xrn7ROrON1qBNRVttTFwtc8oBwcNawsOPzujE+OaqNaPpFp2KHBDRPDBWryQJ7khjBdSvG/4hw9QLUrQaY5/MA5US3EXn3+w2qibYkGMKoT27mD1SvkER7pDxolzlhUen4pq51Y/pD2ojGLYrs15KQFDXv5JAa4aL6AH0kU281yEA2loKHW751ytpBK/AXjWtDicqwGc/apuZO22XZ7GUZDA92j9+1+FpO6bbhXmfrCc+f8cn6+QM=", BinaryEncoding.Base64), Compression.Deflate))
, ¿Crees que la fuente que puse es precisa? Te estaría muy agradecido si pudieras ayudarme a resolver esto, ya que me he estado rascando la cabeza durante días.
¡Gracias!
En la línea 4, sustitúyase "Fuente" por "Data_Sheet"