Excel: restituisce valore solo dalle righe correnti e 3 precedenti


-1

Ho un foglio di calcolo con 3 colonne. La colonna 1 è un elenco di tipi di giurisdizione (stato, città, contea e distretto) e la colonna 2 è il nome della giurisdizione corrispondente.

Devo combinare alcuni dei nomi nella colonna 2 in una stringa visualizzata nella colonna 3, a seconda del corrispondente "Tipo di giurisdizione" nella colonna 1 in quanto tale:

  1. I nomi di stato e città non cambieranno e sostanzialmente riappariranno nella colonna 3
  2. Sto aggiungendo la città ai nomi della contea
  3. Sto aggiungendo i nomi di contea ai nomi di distretto.
  4. Nei casi in cui "Non applicabile" è un valore: se è uno stato o una città, verrà mostrato nella colonna 3 ma sto eliminando "Non applicabile" da qualsiasi stringa (quindi non verrà aggiunto a nessun nome di contea o distretto ).

La mia formula è:

=IF(A13="State", B13, IF(A13="City",IF(A13="NOT APPLICABLE", "NOT APPLICABLE", B13),IF(A13="County",IF(A13="NOT APPLICABLE", "NOT APPLICABLE", IF(VLOOKUP("City", A10:B13,2, FALSE)="NOT APPLICABLE", B13, VLOOKUP("City", A10:B13,2, FALSE) & " " & B13)),IF(A13="District",IF(B13="NOT APPLICABLE", "NOT APPLICABLE", IF(VLOOKUP("County", A10:B13,2,FALSE)="NOT APPLICABLE", B13, VLOOKUP("County", A10:B13,2, FALSE) & " " & B13))))))

Sono stato in grado di realizzare quanto sopra e tutto sembra funzionare bene. Tuttavia, sono preoccupato per il modo in cui ho usato VLOOKUPper trovare i dati. Questo è un elenco molto lungo e mentre trascino la formula verso il basso, l' VLOOKUPintervallo cambia. Quindi, ad esempio, nella 4a riga, l'intervallo è A2: B5 ma quando lo trascino verso il basso, diventa A3: B6, A4: B7, ecc. Mi chiedo se, c'è un modo per modificare l'intervallo nella funzione VLOOKUP o se dovessi utilizzare un'altra funzione del tutto per indicare alla formula di guardare sempre solo nella riga corrente più le 3 righe precedenti.

Ecco un esempio del mio foglio di calcolo:

Tabella di giurisdizione

Ho provato a creare colonne ma non sono riuscito a capire come farlo in Stack Exchange, quindi ho finito per fare uno screenshot. Spero vada bene


Per attività così complesse potresti prendere in considerazione Visual Basic, un linguaggio di programmazione spesso usato con Excel. Ha la capacità di scorrere verso il basso ogni riga, il che ridurrebbe il rischio di usare VLOOKUP. So che non è molto utile quando hai già investito così tanto tempo in una formula, ma potrebbe valere la pena pensarci per la prossima volta.
Sam3000,

Grazie! Ho pochissima esperienza con Visual Basic, quindi spero di poterlo fare con una formula regolare. Tuttavia, apprezzo molto il suggerimento e lavorerò sicuramente di più per imparare VB più velocemente ... Mi sono imbattuto in molti casi in cui sarebbe prezioso. Saluti. :-)
Zipotontic

È possibile che sia la città che la contea NON siano APPLICABILI? Anche questa condizione dovrebbe essere presa in considerazione?
Patkim,

Risposte:


1

Prova questa formula nella colonna 3 e vedi se funziona per te. La mia ipotesi è che la Contea e il Distretto di State City si ripetano costantemente ogni 4 righe.

=IF(A2="State",B2,IF(A2="City",B2,IF(OR(A2="County",A2="District"),IF(AND(B2="NOT APPLICABLE",B1="NOT APPLICABLE"),"",IF(B1="NOT APPLICABLE",B2,IF(B2="NOT APPLICABLE",B1,IF(AND(B1<>"NOT APPLICABLE",B2<>"NOT APPLICABLE"),B1&" "&B2,"")))))))

Ho sostituito VLOOKUP con riferimenti di cella assoluti. Per iniziare ha bisogno di almeno una riga di riserva, che è comunque il tuo header.

inserisci qui la descrizione dell'immagine


pat2015-Questo è assolutamente meraviglioso, grazie! Funziona perfettamente! Un grande grazie a te non solo per aver risolto il mio puzzle, ma anche per aver ripulito il mio casino di una formula. Mi piace molto il tuo uso di IF / AND piuttosto che di tutti i miei VLOOKUP. Grazie mille per il tuo aiuto !!!!
Zipotontic,
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.