Forum Discussion
Devolver una lista basada en varias condiciones en Power Query
Hola a todos
Tengo algunos datos de pronóstico que actualmente están estructurados así (hice lo siguiente en Excel solo para darle una idea) -
| marca de tiempo de pronóstico | fecha de liquidación | Período 1 | Período 2 | … | Período n |
| 01/01/2000 09:30 | 05/01/2000 | 0.899914 | 0.451563 | 0.608477 | 0.009698 |
| 06/01/2000 | 0.891523 | 0.82422 | 0.030027 | 0.0654 | |
| 07/01/2000 | 0.663729 | 0.297937 | 0.874033 | 0.743295 | |
| 08/01/2000 | 0.500766 | 0.565275 | 0.142954 | 0.652788 | |
| 09/01/2000 | 0.194198 | 0.017105 | 0.936981 | 0.884122 | |
| 10/01/2000 | 0.50848 | 0.488765 | 0.689477 | 0.405967 | |
| 01/01/2000 13:30 | 05/01/2000 | 0.822775 | 0.338863 | 0.556413 | 0.194292 |
| 06/01/2000 | 0.143446 | 0.136207 | 0.742118 | 0.850311 | |
| 07/01/2000 | 0.623409 | 0.193469 | 0.142194 | 0.321664 | |
| 08/01/2000 | 0.810111 | 0.017459 | 0.896612 | 0.628561 | |
| 09/01/2000 | 0.640997 | 0.17688 | 0.871779 | 0.345542 | |
| 10/01/2000 | 0.468783 | 0.218556 | 0.158336 | 0.987228 | |
| 01/01/2000 21:30 | 05/01/2000 | 0.593771 | 0.506665 | 0.664236 | 0.094826 |
| 06/01/2000 | 0.392837 | 0.402604 | 0.358911 | 0.831175 | |
| 07/01/2000 | 0.811633 | 0.23189 | 0.068549 | 0.602519 | |
| 08/01/2000 | 0.378539 | 0.907786 | 0.68405 | 0.132635 | |
| 09/01/2000 | 0.068982 | 0.477773 | 0.283442 | 0.547764 | |
| 10/01/2000 | 0.303974 | 0.48517 | 0.971859 | 0.823869 |
Los datos se ordenan según la fecha de liquidación (ascendente). También hay 3 pronósticos al día como puede ver en la columna LHS (tenga en cuenta que estos tiempos no son estáticos y pueden variar en unos minutos).
Lo que me gustaría tener es una columna al final de la tabla, que contenga una lista (por cada fila o fecha de liquidación) que muestre todas las marcas de tiempo pronosticadas -> que están entre la fecha de liquidación de esa fila y la fecha de liquidación - 14 días.
Así, por ejemplo, si la fecha de liquidación de la fila fue el 15 de enero; habría una lista que contendría todas las 14 * 3 marcas de tiempo = 42 marcas de tiempo (1 ene 09:30, 1 ene 14:30, 1 ene 21:30, ... 14 Ene 21:30 ) entre el 1 y el 15 de enero.
Estoy pensando que esto podría hacerse mediante un "vlookup" en una columna de todas las marcas de tiempo distintas (que he podido crear), simplemente no estoy seguro de cómo crear esta columna adicional.
Una vez que haya creado esta columna de listas, me gustaría hacer otro "buscar virtual" para cada marca de tiempo dentro de esa lista y recuperar los valores para el Período 1, El Período 2, ..., el Período n.
¡Cualquier ayuda sería muy apreciada!
3 Replies
- Syndicate_AdminAdministrator
Estoy un poco confundido sobre el resultado que quieres. ¿Puede adjuntar una captura de pantalla de la salida que espera?
Gracias por sus esfuerzos y tiempo de antemano.
Saludos
Yadong Fang
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
- Syndicate_AdminAdministrator
Hi Yadong,
¡Gracias por responder! Claro, estaría feliz de expandirme.
Estoy imaginando una tabla que se ve como a continuación que contiene una nueva columna de listas.
marca de tiempo de pronóstico asentamiento dt - 14 fecha de liquidación Período 1 Período 2 … Período n marcas de tiempo dentro del intervalo de fechas 10/01/2000 09:30 01/01/2000 15/01/2000 0.694076 0.836412 0.47013 0.264499 lista 02/01/2000 16/01/2000 0.8036 0.033309 0.460603 0.097421 lista 03/01/2000 17/01/2000 0.279129 0.761234 0.829295 0.582785 lista 04/01/2000 18/01/2000 0.663147 0.509303 0.798564 0.5087 lista 05/01/2000 19/01/2000 0.699019 0.301492 0.735226 0.385019 lista 06/01/2000 20/01/2000 0.669395 0.29449 0.610192 0.442273 lista 10/01/2000 13:30 01/01/2000 15/01/2000 0.132674 0.078859 0.351541 0.539105 lista 02/01/2000 16/01/2000 0.513159 0.129552 0.386761 0.986358 lista 03/01/2000 17/01/2000 0.757451 0.903553 0.168224 0.148062 lista 04/01/2000 18/01/2000 0.296439 0.828834 0.234968 0.263399 lista 05/01/2000 19/01/2000 0.010451 0.480623 0.135564 0.41822 lista 06/01/2000 20/01/2000 0.053052 0.061175 0.754388 0.03808 lista 10/01/2000 21:30 01/01/2000 15/01/2000 0.460326 0.242416 0.723805 0.072719 lista 02/01/2000 16/01/2000 0.354841 0.342865 0.261104 0.238647 lista 03/01/2000 17/01/2000 0.205888 0.116011 0.616883 0.008302 lista 04/01/2000 18/01/2000 0.467615 0.705912 0.487325 0.946343 lista 05/01/2000 19/01/2000 0.20522 0.154813 0.79244 0.255762 lista 06/01/2000 20/01/2000 0.439527 0.063046 0.230321 0.414235 lista Si ampliamos la lista en la primera fila (donde la fecha de liquidación = 15/1/2000), terminaríamos con una lista de todas las marcas de tiempo (de la 1ª columna) que se encuentran entre el acuerdo dt - 14 y la fecha de liquidación.
es decir, así es como debería verse después de expandir la lista en la primera fila:
01/01/2000 09:30 01/01/2000 13:30 01/01/2000 21:30 … 14/01/2000 21:30 al verificar la condición, es decir, que la marca de tiempo debe ser > = fecha de liquidación - 14d Y marca de tiempo < = fecha de liquidación, la lista debe devolver todas las marcas de tiempo que satisfagan esta condición ... desde la 1ª columna: no debe ser una función de fecha automatizada que devuelva una secuencia de fechas entre una fecha de inicio / finalización.
esto se debe a que la porción hh:mm de la fecha y hora no es constante, es decir, no siempre sigue el patrón de 09:30 -> 13:30 -> 21:30. puede variar de 10 a 20 minutos...
una vez que sea posible crear la columna de listas anterior, quiero aislar solo las columnas para la fecha de liquidación, las marcas de tiempo dentro del rango de fechas y los valores (así):
fecha de liquidación marcas de tiempo dentro del intervalo de fechas Período 1 Período 2 … Período n 15/01/2000 01/01/2000 09:30 - - - - 01/01/2000 13:30 - - - - 01/01/2000 21:30 - - - - … - - - - 14/01/2000 21:30 - - - - 16/01/2000 02/01/2000 09:30 - - - - 02/01/2000 13:30 - - - - 02/01/2000 21:30 - - - - … - - - - 15/01/2000 21:30 - - - - … … Recuperaré los valores del "período 1, período 2, ..." haciendo una combinación en la primera tabla.
gracias por investigar esto!!
- Syndicate_AdminAdministrator
Hi Yadong,
¿Solo te preguntas si ya has podido revisar esto?
Saludos.