Microsoft Excel 2007 – Elenco a discesa che afferra più colonne da un altro foglio

Ho sciacquato internet per questo ma non riesco a trovare una soluzione.

Diciamo che ho 2 fogli – "Articoli" e "Inventario".

All'interno di "Articoli", ho 3 colonne:

  • Nome dell'elemento
  • Tipo di elemento
  • Costo dell'articolo

All'interno di "Inventory", ho la stessa colonna come sopra. Tuttavia, sotto il nome dell'object nel foglio "Inventario", ho un elenco a discesa che elenca tutti gli elementi trovati sotto Nome articolo in "Elementi".

Quello che voglio accadere è che in "Inventario", se seleziono un elemento dall'elenco a discesa … Voglio non visualizzare solo il nome dell'elemento … ma il tipo di elemento e il costo dell'elemento in "Inventario" essere popolato anche con qualunque dato sia in "Elementi" per l'object corrispondente che ho appena scelto.

    È ansible?

    • Sì, utilizzando VLOOKUP. Spiegazione tratto da qui , per gentile concessione di bigmyk2k in risposta a una domanda simile.

    Il lavoro qui non è fatto nell'elenco a discesa (che è facile da fare), il lavoro è fatto in each colonna che si desidera popolare.

    Per each cella, scrivere un VLOOKUP che trova il valore desiderato in una tabella, in base al valore della cella a discesa. Nell'esempio precedente, si desidera definire le gamme dei dati genitori (le informazioni su un foglio di calcolo separato da cui si sta popolando) o aggiustare se necessario. Per questo esempio, supponiamo che abbiamo nominato i dati parent: Parent_Data

    A1 B1 C1 D1 Nome completo ID Addr1 Addr2

    Ad esempio, nell'esempio precedente, se il tuo drop down per FULLNAME è nella cella A1 e stai creando il VLOOKUP per la linea Addr 2 sarebbe,

    = CERCA.VERT (A1, Parent_Data, 4, True)

    Questo trova la corrispondenza esatta per il tuo nome completo, vai alla terza colonna a destra di quella e restituisce quel valore.

    Per mantenerlo ordinato, si desidera incorporare il vlookup in un'istruzione IF, in modo che se non vi è alcun risultato, non mostra nulla. Sembra qualcosa di simile:

    = SE (ISNA (CERCA.VERT (A1, Parent_Data, 4, True)), "", CERCA.VERT (A1, Parent_Data, 4, True))

    Ulteriori istruzioni di chiarimento:

    Per questa spiegazione, devo cominciare dal fatto che l'eccellenza funziona sia giù che a destra, o su e sinistra. In questo caso, siamo nel regno "Giù e Destra".

    Affinché la function funzioni, il valore che si sta cercando con (Fullname in A1) deve anche essere nella colonna più sinistra dei dati padre che state cercando. Ciò è dovuto al fatto che Excel sta per cercare la prima colonna finché non trova il valore e poi la destra nella row finché non viene alla colonna specificata.

    Supponendo che Fullname sia nella colonna A, Excel restituirà il valore nella colonna D perché abbiamo detto di guardare nella quarta colonna della row in cui troviamo il valore corrispondente. Questo è il "4" della formula. Per la cella che si desidera restituire AddressLine1, immettere la stessa formula esatta, ma con un 3, anziché un 4.

    "Falso" indirizza la function VLOOKUP per restituire un valore per la query solo se trova una corrispondenza esatta. "True" restituirà i risultati per la prima partita vicina. Per essere totalmente onesto, non ho capito quello che Excel pensa è vicino in una string di text …

    • Ecco un tutorial video di VLOOKUP su YouTube per ulteriori istruzioni.