Recupera gli indici dell'array da un intervallo


1

Sto affrontando un problema in cui devo inserire indici di colonna da 1 a 1220 nella VLOOKUPfunzione

{=SUM(VLOOKUP(A2,sheet1!$A$3:$AC$11, {1,2, 3, 4, 5, 6, ..., 1219, 1220}, TRUE))}

L'unica soluzione che vedo per questo è scrivere una funzione VBA che prenderà un intervallo e restituirà una matrice di numeri interi, ma devo evitare di inviare un file Excel con macro.

Esiste un altro modo possibile, basato esclusivamente sulle funzioni di Excel?

esempio di foglio:

inserisci qui la descrizione dell'immagine

Devo abbinare la colonna A dal foglio 2 con la colonna A dal foglio 1, quindi sommare il resto della riga.

E deve funzionare anche se il foglio 2 è simile al seguente:

esempio 2


1
Mentre potrebbe esserci una risposta perfetta alla tua domanda, puoi dare un po 'più di contesto su ciò che stai cercando di fare? C'è anche probabilmente un modo migliore per ottenere ciò che vuoi senza usare una matrice di numeri interi.
Dane,

Dal momento che stai usando TRUEcon VLOOKUP(), non ti aspetti una corrispondenza esatta?
Kyle,

Come ha detto @Dane, questo è un classico caso di un problema XY . Facci sapere quali sono i tuoi reali requisiti per questa formula: sembra che tu stia semplicemente cercando di aggiungere tutti i valori su una riga in cui A2 corrisponde approssimativamente alla prima colonna ...?
Jonno,

@Jonno, sì, è quello che sto cercando di ottenere
Abdellah IDRISSI,

@Skyline Per favore, puoi fornire un campione di dati, quindi sappiamo cosa stai cercando di abbinare? L'uso di TRUE con vlookup sembra sempre abbastanza imprevedibile quando l'ho usato prima.
Jonno,

Risposte:


1

Utilizzo dei dati di esempio (Nota: ho confuso le righe 2 e 3 in modo da poter vedere che stanno eseguendo una ricerca, non solo assumendo posizioni):

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

La formula:

=SUM(INDEX(Sheet1!C:XFD,MATCH(A1,Sheet1!A:A,0),0))

Questo aggiunge tutte le colonne da C a XFD (l'ultima possibile colonna in Excel 2007+), trovando la riga che corrisponde ad A1 nella colonna A di Foglio1.



@Skyline Non riesco a capire esattamente cosa vuoi. Puoi provare la formula e farmi sapere se non funziona come previsto e come dovrebbe comportarsi se non funziona?
Jonno,

il comportamento della formula che hai scritto è esattamente quello che voglio, ma non funziona se il foglio 2 è così i.stack.imgur.com/YNCby.png
Abdellah IDRISSI


1
@Skyline Sono contento che tu abbia trovato la causa. Per domande future, assicurati di includere il tuo problema iniziale e tutti i fattori che possono influenzare una soluzione. In questo caso, non puoi effettivamente avere 1200 colonne per un foglio di calcolo compatibile, 256 sarebbe stato il limite.
Jonno,

1

Invece di scrivere {1,2,3,...,1220}, usa ROW(A$1:A$1220), quindi usando il tuo esempio, la tua formula è simile a:

=SUM(VLOOKUP(A2,sheet1!$A$3:$AC$11,ROW(A$1:A$1220),TRUE))

Nota: questa formula restituisce un errore, perché A3:AC11non contiene 1220 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.