Come impostare 2 condizioni / criteri per VLOOKUP / LOOKUP / etc in OpenOffice Calc (o Excel)


3

Ho questo foglio di calcolo che è iniziato come un aiuto sciocco per un gioco (Mafia Wars 2), ma è diventato una domanda complicata per i fogli di calcolo.

Nel gioco il tuo personaggio ha 9 "slot" per armi e armature, 1 per ogni "tipo": arma leggera, arma pesante, armatura, armatura di testa, ecc. Quindi ho creato un elenco di tutte le armi e armature disponibili nel gioco , 1 articolo per riga. Esempio:

SHOP        ITEM TYPE       ITEM NAME       ATK DEF PRICE   EQUIPPED?
Marketplace Weapon Light    Konrad Knife    16  5   5.500
Marketplace Weapon Light    Ice Queen       19  6   8.200
Marketplace Armor Body Up   Layered Polym   0   31  8.600
Marketplace Armor Body Up   Full Shield     7   42  17.650
Marketplace Weapon Heavy    Konrad Bullpup  53  25  24.500
Marketplace Weapon Heavy    Full Moon Blow  73  12  24.500  x
Marketplace Armor Body Low  Knee Pads       17  26  14.200  x
Marketplace Armor Body Low  Army Boots      15  55  24.500
Bone Yard   Weapon Light    Bone Launcher   41  2   9.400   x   
Neon Strip  Vehicle Ground  Supercharged    41  34  24.500
Dead End    Weapon Heavy    Sharp Sickle    21  5   24.500
Dead End    Armor Body Low  Unholy Boots    5   36  15.000
Dead End    Armor Head      Hockey Mask     5   18  15.900  x

Le ultime colonne sono un'indicazione degli articoli che ho già acquistato e attrezzato (contrassegnati con "x"). Ciò di cui ho bisogno è una formula che, per ogni "slot" (tipo di elemento), restituisca informazioni relative all'elemento di quel tipo che sto usando. Sarebbe:

ITEM TYPE       SHOP NAME   ITEM NAME       ATK DEF PRICE
Weapon Light    Bone Yard   Bone Launcher   41  2   9.400
Weapon Heavy    Marketplace Full Moon Blow  73  12  24.500
Weapon Special  --          --              --  --  --
Armor Body Up   --          --              --  --  --
Armor Body Low  Marketplace Knee Pads       17  26  14.200
Armor Head      Dead End    Hockey Mask     5   18  15.900
Vehicle Ground  --          --              --  --  --
Vehicle Water   --          --              --  --  --
Vehicle Air     --          --              --  --  --

I tipi di elementi sono fissi, quindi possono essere codificati. Ogni riga per un tipo di elemento.

Quindi, per la 1a riga del risultato, restituirebbe i dati dalla riga in cui sia la 2a colonna è "Luce dell'arma" che l'ultima colonna è "x". Fondamentalmente ho bisogno di un LOOKUP (o VLOOKUP, o qualsiasi altra cosa) che utilizza 2 criteri per trovare una determinata riga, il tipo di elemento e l'indicatore X.

La domanda è: COME?

Sto usando OpenOffice Calc 3.2.1, ma dal momento che condivide così tante funzioni con MS Excel, anche le risposte per Excel vanno bene (purché utilizzi solo formule regolari, senza VBScript o Macro o VBA ecc.)

Infine, sono ben accetti suggerimenti / soluzioni per riorganizzare i dati in modo da facilitare la risoluzione di questo problema.

Grazie!

Risposte:


1

Ecco come cercare il nome del negozio per ogni articolo nella tua tabella. Se la prima tabella viene trovata in A1:G14e la seconda tabella che si sta compilando viene trovata in K1:Q10, è possibile utilizzare la seguente formula L2per cercare il nome del negozio dell'articolo equipaggiato di tipo in K2:

=IFERROR(INDEX($A$1:$A$14,MIN(IF($B$2:$B$14=K2,IF($G$2:$G$14="x",ROW($B$2:$B$14),1000000),1000000))),"--")

Immettere la formula come formula di matrice premendo Ctrl+ Shift+ Enter. Se eseguita correttamente, la formula apparirà racchiusa in {=...}. Questa formula può essere riempita nella colonna.

Per adattare questa formula per compilare le altre colonne, è necessario modificare il primo argomento della INDEXformula nella colonna appropriata nella prima tabella. Ad esempio, per trovare il nome dell'articolo, utilizzare $C$1:$C$14come primo argomento della INDEXformula.

MODIFICARE:

Bene, ho appena controllato OpenOffice Calc, e sfortunatamente non supporta IFERROR. Quindi ecco una versione più lunga e più imbarazzante della formula che funzionerà in OO Calc:

=IF(ISERROR(INDEX($A$1:$A$14;MIN(IF($B$2:$B$14=K2;IF($G$2:$G$14="x";ROW($B$2:$B$14);1000000);1000000))));"--";INDEX($A$1:$A$14;MIN(IF($B$2:$B$14=K2;IF($G$2:$G$14="x";ROW($B$2:$B$14);1000000);1000000))))

Anche questo deve essere inserito come una formula di matrice premendo Ctrl + Maiusc + Invio. Fai attenzione che devi adattare entrambe le INDEX formule quando lo usi in altre colonne.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.