Formula Excel: crea un array di numeri -

Formula generica

(=ROW(INDIRECT(start&":"&end)))

Sommario

Per creare un array di numeri come (1; 2; 3; 4; 5) puoi usare una formula basata sulle funzioni RIGA e INDIRETTO. Questa tecnica viene spesso utilizzata nelle formule di matrice che richiedono una matrice numerica per l'elaborazione di qualche tipo. Nell'esempio mostrato, la formula in D5 è:

(=ROW(INDIRECT(B5&":"&C5)))

che restituisce un array come (1; 2; 3; 4; 5).

Nota: quando inserito in una singola cella, Excel visualizzerà solo il primo elemento della matrice. Usa F9 nella barra della formula per vedere il risultato effettivo della matrice. Normalmente, utilizzerai questa formula all'interno di una formula di matrice più grande, inserita con CTRL + MAIUSC + INVIO.

Spiegazione

Nota: in Excel 365, la nuova funzione SEQUENZA è un modo migliore e più semplice per creare una matrice di numeri. Il metodo spiegato di seguito funzionerà nelle versioni precedenti.

Il nucleo di questa formula è una stringa che rappresenta le righe. Ad esempio, per creare un array con 10 numeri, puoi codificare una stringa in INDIRETTO in questo modo:

=ROW(INDIRECT("1:10"))

La funzione INDIRETTO interpreta questo testo per indicare l'intervallo 1:10 (10 righe) e la funzione RIGA restituisce il numero di riga per ogni riga in quell'intervallo all'interno di un array.

L'esempio mostrato utilizza una versione più generica della formula che raccoglie i numeri di inizio e fine rispettivamente da B5 e C5, quindi la soluzione è simile a questa:

=ROW(INDIRECT(B5&":"&C5)) =ROW(INDIRECT(1&":"&5)) =ROW(INDIRECT("1:5")) =ROW(1:5) =(1;2;3;4;5)

Il motivo per cui INDIRETTO viene utilizzato nella formula è per evitare modifiche al foglio di lavoro. Senza INDIRETTO, l'inserimento o l'eliminazione di righe può modificare il riferimento dell'intervallo, ad esempio:

=ROW(1:5)

cambierà in:

=ROW(1:4)

Se la riga 1 viene eliminata. Poiché INDIRETTO funziona con un riferimento costruito con testo, non viene influenzato dalle modifiche sul foglio di lavoro.

Numeri di riga relativi in ​​un intervallo

Se hai bisogno di un array composto dai numeri di riga relativi di un intervallo, puoi utilizzare una formula come questa:

=ROW(range)-ROW(range.firstcell)+1

Vedi questa pagina per una spiegazione completa.

Valori negativi

La funzione RIGA non gestisce i numeri negativi, quindi non puoi mescolare numeri negativi all'inizio e alla fine . Tuttavia, è possibile applicare operazioni matematiche all'array creato da ROW. Ad esempio, la seguente formula creerà questo array: (-5; -4; -3; -2; -1)

=ROW(INDIRECT(1&":"&5))-6

Numeri in ordine inverso, da n a 1

Per creare una matrice di numeri positivi in ​​ordine decrescente, da n a 1, puoi utilizzare una formula come questa:

=ABS(ROW(INDIRECT("1:"&n))-(n+1))

Articoli interessanti...