/ / Wie kann ich einen variablen Excel-Bereich angeben? - Excel, Arbeitsblattfunktion, Excel-2011

Wie kann ich einen variablen Excel-Bereich angeben? - Excel, Arbeitsblattfunktion, Excel-2011

Ich möchte in der Lage sein, einen Bereich in Excel basierend auf Zeilen- / Spaltenvariablen dynamisch anzugeben.

Nehmen wir an, ich habe eine Datei mit Inhalten, die so aussehen:

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

Wenn ich die Elemente in Zeile 1, Spalten 2-4 (d. H. 11 + 12 + 13) summieren wollte, wie würde ich das angeben?

Wenn ich es mit der Hand mache, tippe ich:

=SUM(B1:D1)

... aber wie kann ich diese Bereichsdefinition programmgesteuert generieren und nur die gewünschte Zeile (1) und die Spaltennummern (2-4) kennen?

=SUM(????)

Vielen Dank im Voraus für Ihre Hilfe!

(Ich verwende Microsoft Excel 2011 für Mac, daher funktionieren Excel VBA / Makro-basierte Lösungen für mich nicht.)

Antworten:

9 für die Antwort № 1

Ich hatte das gleiche Bedürfnis - sieht aus wie das OFFSET Funktion lässt Sie das tun.

Also für die oben genannten:

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

um es aufzubrechen:

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)

Sie können die Offsets auf Null setzen, wenn Sie möchten, oder + nach unten zu widerlegen - sich zu erholen


1 für die Antwort № 2

Nicht sicher was du willst.
Meinst du das?

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) & ")"

Oder wolltest du es als Formel?

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

1 für die Antwort № 3

Es hängt davon ab, wie auf die "bekannten" Zeilen- und Spaltennummern verwiesen wird
Zum Beispiel, wenn es sich um Werte in Zellen auf dem Arbeitsblatt handelt:

     A          B
9   Row        1
10   ColStart   1
11   ColEnd     4

Verwenden Sie die INDRECT Funktion zum Erstellen einer Bereichsreferenz

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