/ / Come posso specificare un intervallo Excel variabile? - Excel, foglio di lavoro-funzione, Excel-2011

Come posso specificare un intervallo di Excel variabile? - Excel, funzione foglio di lavoro, Excel-2011

Mi piacerebbe poter specificare dinamicamente un intervallo in Excel, in base alle variabili riga / colonna.

Diciamo che ho un file con contenuti che sembrano in questo modo:

A B C D E 1 10 11 12 13 14 2 51 52 53 54 55

Se volessi sommare gli articoli nella riga 1, colonne 2-4 (ovvero 11 + 12 + 13), come lo specificerei?

Se lo facessi a mano, scriverei:

=SUM(B1:D1)

... ma come posso generare programmaticamente quella definizione di intervallo al volo, conoscendo solo i numeri di riga (1) e colonna desiderati (2-4)?

=SUM(????)

Grazie in anticipo per il vostro aiuto!

(Sto usando Microsoft Excel 2011 per Mac, quindi le soluzioni Excel basate su VBA / macro non funzioneranno per me.)

risposte:

9 per risposta № 1

Avevo lo stesso bisogno - sembra il OFFSET la funzione ti permetterà di farlo.

Quindi per quanto sopra:

=SUM(OFFSET(A1,0,1,1,3))

per scomporlo:

OFFSET(reference cell,
row offset from ref cell to start the range,
col offset to start the range, height of range you want,
width of range you want)

è possibile azzerare gli offset, oppure + rifiutare, - per ricaricare


1 per risposta № 2

Non sei sicuro di quello che vuoi.
Intendevi questo?

dim parent_range as range
dim child_range as range

set parent_range = me.range("a1:e2")
set child_range = range(parent_range.rows(1).cells(2), parent_range.rows(1).cells(4))

msgbox "=sum(" & child_range.address(false, false, xla1) & ")"

O lo volevi come una formula?

=SUM(INDEX($A$1:$E$2,1,2):INDEX($A$1:$E$2,1,4))

1 per risposta № 3

Dipende da come vengono referenziati i numeri di riga e colonna "noti"
Ad esempio se sono valori nelle celle del foglio:

     A          B
9   Row        1
10   ColStart   1
11   ColEnd     4

Usa un INDRECT funzione per costruire un riferimento di intervallo

=SUM(INDIRECT("R"&B9&"C"&B10&":R"&B9&"C"&B11,FALSE))