Estoy usando Numbers '09 (pero puedo actualizar si es necesario). ¿Cómo puedo encontrar un valor usando múltiples criterios?
Digamos que tengo una tabla de vuelos, con columnas para la fecha del vuelo, el número de vuelo (incluido el código de la aerolínea), el código de reserva, etc. y otra tabla que contiene las ganancias en un programa de viajero frecuente (millas de premio, millas elite, dólares elite) para cada aerolínea, rango de fechas y código de reserva. Para cada vuelo (fila) en la primera tabla, necesito encontrar la fila en la segunda tabla que coincida con el código de la línea aérea del número de vuelo, la fecha del vuelo y el código de reserva. Luego tomaré el valor en una columna específica de esa fila y lo multiplicaré por la distancia de vuelo para obtener las ganancias para esa categoría.
Ejemplo:
La Tabla 1 ("Vuelos") tiene columnas como:
La Tabla 2 ("Por aerolínea") tiene columnas como:
Para la columna "EQM proyectada" para un vuelo (por ejemplo, vuelo en la fila 3, el segundo vuelo), quiero encontrar la fila en la Tabla 2 ("Por aerolínea") donde:
- El código de la aerolínea coincide con el código al comienzo del número de vuelo (por ejemplo, "cx")
- La columna "Fechas de vuelo desde" está en blanco o no antes de la fecha de vuelo
- La columna "Fechas de vuelo hasta" está en blanco o a más tardar en la fecha de vuelo
- La columna "Código de reserva" contiene el código de reserva del vuelo
En el ejemplo, la fila 96 coincide.
Luego, necesito tomar el valor en la columna "EQM" de esa fila (1.5) y multiplicarlo por el valor en la columna "Millas de vuelo". El resultado es el "EQM proyectado".
¿Cómo haría esto? He leído las descripciones de las funciones probables (LOOKUP, VLOOKUP, MATCH, INDEX) pero solo puedo ver cómo buscar usando un único criterio.
Respuestas:
Lo tengo funcionando ahora, al extender las técnicas discutidas en otro lugar (que usa una columna adicional para contener un agregado de los criterios de coincidencia).
Para manejar los rangos de fechas, creé una tabla de búsqueda adicional que asigna un valor único arbitrario a cada rango de fechas:
En la tabla de búsqueda de ganancias por aerolínea, agregué una columna adicional para mantener el Código de fecha para el rango de fechas, usando BUSCARV contra la columna de fecha de inicio, con coincidencia exacta, ya que encuentra el valor más grande que es menor que el criterio :
Y otra columna adicional para contener una cadena de búsqueda calculada que es una concatenación de la aerolínea, los códigos de reserva y el código de rango de fechas:
Luego, en la tabla principal (que contiene los vuelos realizados), agregué una columna adicional para contener la cadena de búsqueda, que es una concatenación de la aerolínea, el código de rango de fechas solo si corresponde y el código de reserva con asteriscos a cada lado como comodines, y otra columna adicional para contener la fila calculada de la tabla de búsqueda por aerolínea:
(Por supuesto, podría haber evitado agregar dos columnas adicionales en ambas tablas al hacer que las fórmulas sean más complejas, pero opté por una mejor legibilidad).
Luego, las columnas de ganancias reales en la tabla principal utilizan la función BUSCAR con la fila calculada de la tabla de búsqueda por aerolínea y la columna correspondiente, por ejemplo:
fuente