Excel: estrarre dinamicamente i valori separati da virgola e restituire un valore aggiunto da un elenco separato


0

Ho una situazione in cui un utente fornirà un set di numeri separato da virgole e compilerà un elenco separato dei costi di ricerca. Una volta che l'utente inserisce i valori, una cella separata restituirà quello che sarebbe il valore totale di questo, appare come di seguito:

[Valori di input dell'utente] [Valore restituito del costo aggiunto]

Celle di ricerca dei costi

  1. $ 100
  2. $ 200
  3. $ 300
  4. $ 400 ecc

Un esempio di input dell'utente potrebbe essere: [1, 4] che dovrebbe restituire [$ 500]

Al momento sono bloccato per ottenere un numero indefinito di virgole da leggere. Potrebbe non avere input senza virgole che dovrebbero restituire $ 0 o potrebbero essere 200 valori diversi separati da virgole (o virgola e spazio come nell'esempio sopra).

Il mio processo di pensiero era prendere i valori separati da virgola e suddividere ogni numero in una nuova cella, quindi utilizzare un VLOOKUP per ottenere l'importo del costo e aggiungerlo tutto per avere un valore di ritorno. Funzionerebbe tutto se riesco a ottenere qualche formula per suddividere un numero indefinito di valori separati da virgole. Qualcosa di simile a:

inserisci qui la descrizione dell'immagine

È possibile anche con la formula? L'utente non dovrebbe fare altro che compilare le celle di ricerca e inserire i numeri di cui hanno bisogno.

Risposte:


0

Questa formula di matrice funziona con i numeri per la CO# stringa IF, quindi è necessario rimuovere la --nella formula.

Metti questo in D2:

=IF(LEN($E$1)-LEN(SUBSTITUTE($E$1,",",""))+1>=ROW($A1),INDEX(A:A,MATCH(--TRIM(MID(SUBSTITUTE($E$1,",",REPT( " ",99)),(ROW($A1)-1)*99+1,99)),$A:$A,0)),IF(ROW($A1)=LEN($E$1)-LEN(SUBSTITUTE($E$1,",",""))+2,IF(COLUMN(A$1) = 1, "$",SUM(INDEX($B:$B,MATCH(N(IF(1,--TRIM(MID(SUBSTITUTE($E$1,",",REPT( " ",99)),(ROW(INDEX($AAB:$AAB,1):INDEX($AAB:$AAB,LEN($E$1)-LEN(SUBSTITUTE($E$1,",",""))+1))-1)*99+1,99)))),$A:$A,0)))),""))

Confermare con Ctrl-Maiusc-Invio anziché Invio. Quindi copia su una colonna e giù abbastanza per gestire tutte le righe necessarie.

A seconda di dove si trova nell'elenco, le varie istruzioni IF, divideranno la stringa e restituiranno su MATCH tutte le parti o tutte le sue parti, che a loro volta restituiranno all'INDICE tutta o una delle posizioni relative. Quindi riassume tutte le parti o restituisce il valore singolo corretto.

Si ridimensionerà automaticamente secondo necessità.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


Wow, non posso dire di aver capito tutto quello che hai fatto con quella formula ... ma fa esattamente come ne ho bisogno. Alcuni hanno un senso, ma questo è intenso. Sarebbe possibile avere un guasto in modo che io possa imparare cosa sta succedendo? L'ho usato insieme a = LOOKUP (2,1 / (E: E <> ""), E: E) per catturare il valore totale e usarlo altrove nel mio file. Grazie mille.
Ashton Fraess,

seleziona la cella con la formula e usa la formula di valutazione nella scheda delle formule. passerà attraverso la formula.
Scott Craner,
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.