1 votos

Números: Buscar una celda en una tabla (lookup) utilizando múltiples criterios

Estoy usando Numbers '09 (pero puedo actualizarlo si es necesario). ¿Cómo puedo encontrar un valor utilizando múltiples criterios?

Digamos que tengo una tabla de vuelos, con columnas para la fecha de vuelo, el número de vuelo (incluyendo 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 de élite, dólares de élite) para cada aerolínea, rango de fechas y código de reserva. Para cada vuelo (fila) de la primera tabla, necesito encontrar la fila de la segunda tabla que coincida con el código de la aerolínea a partir del número de vuelo, la fecha de vuelo y el código de reserva. A continuación, tomaré el valor de una columna específica de esa fila y lo multiplicaré por la distancia del vuelo para obtener las ganancias de esa categoría.

Ejemplo:

La tabla 1 ("Vuelos") tiene columnas como:

"Flights"

El cuadro 2 ("Por línea aérea") tiene columnas como

"Per-Airline"

Para la columna "EQM proyectada" de un vuelo (por ejemplo, el vuelo de la fila 3, el segundo vuelo), quiero encontrar la fila de la Tabla 2 ("Por línea aérea") donde:

  • El código de la compañía aérea coincide con el código que aparece al principio del número de vuelo (por ejemplo, "cx")
  • La columna "Fechas de vuelo desde" está en blanco o no es anterior a la fecha de vuelo
  • La columna "Fechas de vuelo hasta" está en blanco o no es posterior a 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.

A continuación, tengo que tomar el valor de la columna "EQM" de esa fila (1,5) y multiplicarlo por el valor de la columna "Millas de vuelo". El resultado es la "EQM proyectada".

¿Cómo lo haría? He leído las descripciones de las funciones probables (LOOKUP, VLOOKUP, MATCH, INDEX) pero sólo veo cómo buscar utilizando un único criterio.

2voto

user22814 Puntos 196

He conseguido que funcione ahora, ampliando las técnicas discutidas en otro lugar (que utiliza una columna extra para contener un agregado de los criterios de coincidencia).

Para manejar los rangos de fechas, he creado una tabla de búsqueda adicional que asigna un valor único arbitrario a cada rango de fechas:

enter image description here

En la tabla de búsqueda de ganancias por aerolínea, añadí una columna extra para mantener el código de fecha para el rango de fechas, usando VLOOKUP contra la columna de fecha-desde, con coincidencia exacta, ya que encuentra el valor más grande que es menor que el criterio:

enter image description here

Y otra columna extra para mantener 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:

enter image description here

Luego, en la tabla principal (que contiene los vuelos tomados), añadí una columna extra para contener la cadena de búsqueda, que es una concatenación de la aerolínea, el código de rango de fechas sólo si es aplicable, y el código de reserva con asteriscos a cada lado como comodines, y otra columna extra para contener la fila calculada de la tabla de búsqueda por aerolínea:

enter image description here

(Por supuesto, podría haber evitado añadir dos columnas extra en ambas tablas haciendo las fórmulas más complejas, pero he optado por una mejor legibilidad).

A continuación, las columnas de ganancias reales de la tabla principal utilizan la función LOOKUP con la fila de la tabla de búsqueda calculada por línea aérea y la columna correspondiente, por ejemplo

= IF ( $PNR '1' = "", "",  ROUNDUP ( IF ( INDEX ( 'Per-Airline',  $Lookup Row '1', COLUMN ( 'RDM per $ (EXP)' ) ) > 0, INDEX ( 'Per-Airline',  $Lookup Row '1', COLUMN ( 'RDM per $ (EXP)' ) ) *

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X