Números: encuentre una celda en una tabla (búsqueda) usando múltiples criterios

1

Estoy usando Numbers '09 (pero puedo actualizar si es necesario). ¿Cómo puedo encontrar un valor utilizando varios criterios?

Digamos que tengo una tabla de vuelos, con columnas para la fecha del vuelo, número de vuelo (incluido el código de la aerolínea), 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) en la primera tabla, necesito encontrar la fila en la segunda tabla que coincida con el código de la aerolínea 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:

" Vuelos "

La Tabla 2 ("Por aerolínea") tiene columnas como:

" Por aerolínea "

Para la columna "EQM proyectado" 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 de" está en blanco o no es anterior a la fecha de vuelo
  • La columna "Fechas de vuelo a" 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.

Entonces, 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 utilizando un solo criterio.

    
pregunta jetset 23.10.2017 - 02:36

1 respuesta

2

Lo he puesto en funcionamiento ahora, al extender las técnicas analizadas en otro lugar (que utiliza 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:

Enlatabladebúsquedadegananciasporaerolínea,agreguéunacolumnaadicionalparacontenerelCódigodefechaparaelrangodefechas,usandoVLOOKUPcontralacolumnadefecha,concoincidenciaexacta,yaqueencuentraelmayorvalorqueesmenorqueelcriterio:

Yotracolumnaadicionalparacontenerunacadenadebúsquedacalculadaqueesunaconcatenacióndelaaerolínea,loscódigosdereservayelcódigoderangodefechas:

Luego,enlatablaprincipal(quecontienelosvuelostomados),agreguéunacolumnaadicionalparacontenerlacadenadebúsqueda,queesunaconcatenacióndelaaerolínea,elcódigodelrangodefechassolosicorrespondeyelcódigodelareservaconasteriscos.acadaladocomocomodinesyotracolumnaadicionalparacontenerlafilacalculadadelatabladebúsquedaporaerolínea:

(Porsupuesto,podríahaberevitadoagregardoscolumnasadicionalesenambastablasalhacerlasfórmulasmáscomplejas,perooptéporunamejorlegibilidad).

Luego,lascolumnasdegananciasrealesenlatablaprincipalusanlafunciónLOOKUPconlafiladelatabladebúsquedacalculadaporaerolíneaylacolumnacorrespondiente,porejemplo,:

=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)' ) ) * 
    
respondido por el jetset 26.11.2017 - 16:11

Lea otras preguntas en las etiquetas