Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Buen día. En un archivo Excel tengo una hoja (Fecha) con las fechas del año y frente a cada una un parámetro conformado por 3 letras, el grupo de letras pueden repetirse en diferentes fechas. Las letras frente a cada fecha pueden cambiarse en cualquier momento, es decir que estos valores se pueden editar de acuerdo a las necesidades del momento
Fecha | Parametro |
01/01/2014 | BDV |
02/01/2014 | IUW |
03/01/2014 | YPT |
04/01/2014 | BHS |
05/01/2014 | VYX |
En otra hoja (Datos) tengo cada uno de esos parámetros y frente a ellos dos valores (inicial y final).
Grupo | ValorInicial | ValorFinal |
AHS | 3277 | 4850 |
AZR | 4358 | 6188 |
BDV | 4589 | 5186 |
BHS | 4733 | 6958 |
BIN | 3377 | 4559 |
CAH | 4084 | 4656 |
CTT | 4990 | 7186 |
Los valores (inicial y final) no cambian nunca, siempre son los mismos para el grupo de letras.
En el archivo que adjunto las dos hojas están juntas, en el mismo libro, pero en la vida real son archivos separados y el archivo de los valores solo está disponible para pocos usuarios autorizados.
El problema que tengo es el siguiente: cada vez que se recargue el programa, del archivo Excel debe tomar el 'Parametro' que corresponda con la fecha del día en curso, por ejemplo el 26 de junio de 2014 'Parametro' = WSS. Y con ese dato tomar de la hoja 'Datos' los valores que correspondan, que serían 4135 y 5665.
He hecho varios intentos, pero no soy capaz de recargar el dato que corresponde, no puedo asignar a una variable el valor 'Parametro' para que me sirva de filtro después.
Gracias por la ayuda.
Si quieres que la carga del parámetro sea dinámica, lo que necesitas es guardar el valor del parámetro en una variable para después utilizarlo como filtro en la tabla de valores. Tendrías que declarar la variable así:
LET ValParam = Peek('Parametro',0,'FechaParametro');
Lo que hace la función peek es tomar el registro que acabas de cargar en la tabla de parámetros y lo almacena en una variable. En tu ejemplo me imagino que se carga un único valor por día, de no ser así necesitarías un ciclo que recorra la tabla y te regrese todos los valores para cada fecha.
Me imagino que la carga depende del día que sea, entonces cada día va a cargar un parámetro diferente, es correcto?
anexo el ejemplo
Hola,
le hice algunos cambios al archivo qvw:
1) Es más facil si manejas la fecha de la variable con la función Today(), además siempre que declares una variable que contiene una expresión que deba ser evaluada, utiliza LET, de otro modo la variable será interpretada como texto.
2) Al mandar llamar la variable en el where, debes ponerle comillas simples para que QV la interprete correctamente:
Where Parametro = '$(Variable');
3) tus 2 tablas deben estar ligadas, en este caso por el campo Parametro. Por lo tanto, en la tabla valores, el campo Grupo debe ser renombrado a Parametro.
4) No afecta en nada, que los exceles reales vengan de diferentes archivos, al final tus 2 tablas apuntarán a 2 archivos diferentes, en lugar de 2 pestañas diferentes de un mismo archivo, como ocurre en el ejemplo
anexo el ejemplo con los cambios,
confírmame si eso es lo que necesitas por favor,
saludos
Jaime, gracias por la respuesta. Tengo problemas con tu ayuda, porque en el script veo lo siguiente:
SET ValParam = 'WSS';
Y no siempre va a ser 'WSS' el valor, porque depende de la fecha en que se recarga que irá cambiando dinamicamente, tampoco funciona si le digo:
SET ValParam = [Parametro];
Gracias.
Si quieres que la carga del parámetro sea dinámica, lo que necesitas es guardar el valor del parámetro en una variable para después utilizarlo como filtro en la tabla de valores. Tendrías que declarar la variable así:
LET ValParam = Peek('Parametro',0,'FechaParametro');
Lo que hace la función peek es tomar el registro que acabas de cargar en la tabla de parámetros y lo almacena en una variable. En tu ejemplo me imagino que se carga un único valor por día, de no ser así necesitarías un ciclo que recorra la tabla y te regrese todos los valores para cada fecha.
Me imagino que la carga depende del día que sea, entonces cada día va a cargar un parámetro diferente, es correcto?
anexo el ejemplo
Muchas gracias Jaime, eso es lo que necesitaba.
Buenos días
solicito por favor me ayuden con lo siguiente:
Tengo una base de datos en la cual hay un histórico de información que no es necesario cargarla. Por favor me pueden ayudar indicándome como coloco una función para que me funcione.
Adicional estoy tratando de hacer la parametrización para hacer carga incremental pero al momento de ejecutar me duplica los datos, es posible que me regalen la secuencia de cómo se genera la parametrización de cargas secuenciales y que me indiquen si es necesario replicar esa parametrización en todas las secciones de la misma app.
Gracias