Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

INDIREKT Verschiedene Bereichsdefinitionen für Sverweis

Forumthread: INDIREKT Verschiedene Bereichsdefinitionen für Sverweis

INDIREKT Verschiedene Bereichsdefinitionen für Sverweis
10.01.2026 13:55:33
Klaus
Hallo,

vielleicht kann mir hier jemand helfen:

Ich habe ein Tabellenblatt das aus verschiedenen Preisbestandteilen einen Gesamtpreis ermittelt. Damit ich nicht bei eventuellen Preisänderungen die ganze Tabelle anpassen muss, liegen die Preise in einem separaten Blatt in der Datei.

Jetzt gibt es einmal die Grundpreise und für einige der Artikel Zusatzpreisteile

Spalte A enthält die Bezeichnung des Artikels, Spalte C den Grundpreis und in den Spalten D bis F Zusatzpreise.

Es gibt Artikel die also nur Einträge in den Spalten A und B haben und solche die zusätzlich Einträge in C Bis F haben.

Somit sind in den Spalten A bis C mehr Zeilen belegt als in D bis F

Beispiel
Zeile4 Spalte A enthält Artikel1, Spalte C den Grundpreis und Spalte D einen Zusatzpreis (sagen wir mal weil bestimmte Größe überschritten wird)
Zeile6 Spalte A enthält Artikel3, Splate C den Grundpreis und Spalte C... ist leer, weil es halt diesen Artikel nur in einer Ausführung gibt.

Nun habe ich für die Preisermittlung in einer Spalte diese Formeln:

=WENNFEHLER(SVERWEIS(@INDIREKT("P"&ZEILE());INDIREKT($BB$2&$BG$2;4);4;FALSCH);0)
=WENNFEHLER(SVERWEIS(@INDIREKT("P"&ZEILE());INDIREKT($BB$2&$BG$2;5);5;FALSCH);0)
=WENNFEHLER(SVERWEIS(@INDIREKT("P"&ZEILE());INDIREKT($BB$2&$BG$2;6);6;FALSCH);0)
usw.

In P steht die Artikelbezeichnung (die im Preisblatt in Spalte A zu finden ist). Die kann ich über eine Auswahlliste dort erzeugen.

Jetzt kommt die eigentliche Frage: In der Zelle BB2 steht der Name des Preisblattes mit ! am Ende. In den Zellen BC2 bis BG2 stehen verschiedene Bereichsangaben, also etwa so:

BB2: Preisblatt!
BC2: $a$4:$a$6 (in Spalte A sind die Bezeichnungen für die Auswahlliste)
BD2: $a$4:$c$6 (Spalte A wie oben, Spalte B eine Kurzform von A für den Rechnungstext und Spalte C der Grundpreis
BE2: $a$4:$f$5 (wie vorstehehend nur zusätzlich in Spalten D - F je ein Zusatzpreis) - es gibt also nur bis Zeile 5 Einträge mit Zusatzpreisen danach nur noch mit Grundpreisen.

Ich wollte nun mit der o. g. Formel bzw. mit dem Teil "Indirekt mit Bereichsangabe" die Preise für Grundpreis und Zusatzpreise eintragen lassen.

Es werden auch Preise gefunden, aber nicht so ganz wie ich das gedacht habe.... bzw. für mich nicht verständliche....

Denn ich dachte eigentlich, die sich verändernde Ziffer in der Bereichsklammer bezieht sich auf die jeweile Spalte nach BB2 (=Spalte1) in denen die verschiedenen Bereichsangaben stehen.

So sollte also für den SO1 der Bereich "Preisblatt!$a$4:$d$5" lauten, für den nächsten "Preisblatt!$a$4:$e$5" und dann halt "Preisblatt!$a$4:$f$5".

Es wird mir aber egal welche dieser Ziffern in der Formel steht immer die Bereichsangabe die in Zelle BG2 steht als Bezug angezeigt.

Da in BG2 "$a$4:$f$5" steht, funktioniert die Formel trotzdem wie gewünscht, aber ich verstehe es halt nicht so richtig...

Geht das nicht so, wie ich es gedacht habe oder was mache ich falsch? Es könnten im Preisblatt ja auch noch andere Einträge in völlig anderen Bereichen eingetragen werden, beispielsweise ein Datenbereich von F4 bis K100 (in F wieder die Bezeichnungen nach denen ggf. zu suchen ist und dahinter die entsprechenden Rückgabewerte).









Anzeige

26
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: INDIREKT Verschiedene Bereichsdefinitionen für Sverweis
10.01.2026 14:00:31
BoskoBiati
Hi,

ohne die Datei zu kennen ist das wohl nur Raterei. P&Zeile() ist zumindest der Wert, der in P steht, und zwar in der Zeile, in der die Formel steht!

Gruß

Edgar
Anzeige
AW: INDIREKT Verschiedene Bereichsdefinitionen für Sverweis
10.01.2026 15:06:21
Uduuh
Hallo,
was zur Hölle sollen die vielen INIREKT()?
statt
@INDIREKT("P"&ZEILE())
in
G5: =WENNFEHLER(SVERWEIS(@INDIREKT("P"&ZEILE());INDIREKT($BB$2&$BG$2;3);3;FALSCH);0)
reicht doch
G5: =WENNFEHLER(SVERWEIS(P5;INDIREKT($BB$2&$BG$2;3);3;FALSCH);0)

Ebenso statt in J5
=WENNFEHLER(WENN(@INDIREKT("R"&ZEILE())="ja";SVERWEIS(@INDIREKT("P"&ZEILE());INDIREKT($BB$2&$BG$2;6);6;FALSCH);0);0)
=WENNFEHLER(WENN(R5="ja";SVERWEIS(P5;INDIREKT($BB$2&$BG$2;6);6;FALSCH);0);0)

INDIREKT() sollte man möglichst vermeiden.
Du solltest deine Datei nochmal überdenken. z.B in Preisliste die gleiche Spaltenfolge wie in Leistungen.
Willst du etwa für jeden Kunden eine eigene Preisliste anlegen? Das ist Schwachsinn. Mache dich mit den Grundlagen von Datenbanken vertraut.

Gruß aus'm Pott
Udo
Anzeige
AW: INDIREKT Verschiedene Bereichsdefinitionen für Sverweis
10.01.2026 19:53:06
daniel
Hi

dein: INDIREKT($BB$2&$BG$2;4) bastelt dir den Zellbezug aus Zelle BB2 (Tabellenblattname) und BG2 (Adresse) zusammen.
Was in den restlichen Zellen steht, ist irrelevant, die werden hier nicht verwendet.

Was du mit dem 2. Paramteter vom Index willst ist unklar.
INDIREKT hat zwar einen 2. Parameter, aber dieser gibt nur an, ob du die Adressen in der A1-Schreibweise (Wahr oder fehlenend) oder in der Z1S1-Schreibweise (Falsch) angegeben hast.
Die Zahlen, die hier verwendest, werden zwar akzeptiert, wirken aber wie ein WAHR und sagen: Adressen stehen in der A1-Schreibweise.
Auffälligerweise korrlieren deine Zahlen mit dem 3. Parameter deines SVeweises, also der Angabe des Spaltenindex, aus dem das Ergebnis genommen werden soll.

Gruß Daniel
Anzeige
AW: INDIREKT Verschiedene Bereichsdefinitionen für Sverweis
10.01.2026 20:04:33
Klaus
Hallo Daniel,

danke für die Info, jetzt verstehe ich es auch. Das & war der Denkfehler. Ich dachte ich baue hier auch eine von bis Bereich auf und der A1 sagt welche Spalte dazugenommen wird. Bei & müsste ich dann ja immer BB2 & die jeweils andere Zelle verwenden.... werde ich mal probieren. Hatte mir hilfsweise erstmal beholfen, den gesamten Bezugstext (also Preisblatt!BB.......) in die jeweiligen Zellen zu setzen. Das funktioniert dann auch.... Vermutlich würde auch die Verwendung von "Namen" Sinn machen.....
Anzeige
AW: INDIREKT Verschiedene Bereichsdefinitionen für Sverweis
11.01.2026 15:04:35
Klaus
Hallo Daniel,

mir sind jetzt ein paar neue Gedanken gekommen, an denen ich jetzt schon ein paar Stunden erfolglos herumprobiere. Vielleicht kannst Du mir auf die Sprünge helfen:

Ich habe ja in meiner Datei eine Tabelle "Preisblatt". Wie bereits geschildert, enthält diese in den Spalten A bis F unterschiedlich viele gefüllte Zeilen.

Spalte A enthält die Namen für meine DropdownListe, B Kurzbezeichnungen die dann angezeigt werden sollen, C die Grundpreise und D bis F Zusatzpreise.

Nun kam mir der Gedanke: Was, wenn sich diese Tabelle ändert, also beispielsweise ein neuer Wert hinzukommt. Damit ein neuer Eintrag in meiner Dropdown erscheint, müsste ich ja die entsprechende Liste/Datenüberprüfung ändern. Das sollte aber automatisch geschehen.

Meine Idee dazu: Worksheet_Change im Preisblatt einbauen. Immer wenn ein Änderung vorkommt, wird damit die jeweilig letzte gefüllte Zelle jeder Spalte ermittelt und in eine Variable geschrieben. Beispiel: In A1 steht Überschrift "DropdownText", darunter folgen A2 "Droptext1", A3 "Droptext2".

Füge ich jetzt in A4 "Droptext3" ein, wird in die Variable "DDText" mittels DDText = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count) die letzte gefüllte Zelle bzw. deren Zeilennummer ermittelt. Mittels dieser wollte ich nun den Bereich für die DropDownListe dynamisch erzeugen. Mir kam sogar die Idee, dem vollständigen Bereich (mittels indirekt oder verketten oder beides?) einen NAMEN zuzuweisen, der dann wiederum in meinen Sverweis-Formeln die Matrix erzeugt. Zu guter letzt kam mir noch die Idee, auch den Blattnamen (in diesem Fall das Blatt "Preisblatt") mit einem NAMEN zu versehen.

Der NAME "Dropdownliste" soll dann die fertige Matrix für die SVerweis-Abfrage enthalten und sich zusammensetzen aus "Name des Blattes" (ggf. vornedran ein ' und danach ein ! und danach der zusammengesetzte Bereich $A&2:$A$ Inhalt DDText müsste dann halt fertig etwa so aussehen: 'Preisblatt!$A$2:$A$4 und dann vermutlich mit Indirekt Sverweis oder wie auch immer in der Listenformel verwendung finden.

Vermutlich bin ich nur zu dämlich, die korrekte Zusammenstellung der einzelnen Formelteile hinzubekommen.... denke aber die Idee ist klar, oder?

Für Dich wahrscheinlich nicht der Rede wert....


Anzeige
dynamisches Dropdown
11.01.2026 17:27:53
Uduuh
Hallo,
das kannst du einfach mit einem Namen erledigen
Name: Leistung
Bezieht sich auf: =PUMPreisliste!$A$2:INDEX(PUMPreisliste!$A:$A;ANZAHL2(PUMPreisliste!$A:$A))

In die Datenüberprüfung schreibst du einfach =Leistung

Noch einfacher wird's, wenn du aus der Preisliste eine 'intelligente' Tabelle machst.
Name der Tabelle: Preisliste
Bezug für den Namen: =Preisliste[Leistung]

Gruß aus'm Pott
Udo
Anzeige
AW: dynamisches Dropdown
11.01.2026 18:00:05
Klaus
Hallo Udo,

Danke für den Tipp. Richtig verstanden habe ich allerdings nicht die Sache mit der Intelligenten....

Momentan heißt das Blatt ja PUMPreisliste. Für die Spalte A einen Namenn festzulegen (Leistung) ist auch OK.

Nun sagst Du ich soll eine neue Tabelle mit Namen Preisliste erstellen (oder ist das meine PUM umbenannt in Preisliste?)

Und was steht den in der neuen Preisliste dann drin?

Anzeige
AW: dynamisches Dropdown
11.01.2026 18:48:24
Uduuh
Hallo,
markiere eine Zelle in deiner Preisliste und drücke STRG+T. Die erzeugte (intelligente) Tabelle benennts du in Preisliste um.

Gruß aus'm Pott
Udo
AW: dynamisches Dropdown
11.01.2026 18:13:08
Klaus
Hallo Udo,

noch eine Frage: Für die Liste soll ich nun ja einfach auf den vergebenen Namen verweisen. Das funktioniert grundsätzlich. Ich möchte aber erreichen, dass die Dropdownliste nur erscheint bzw. Einträge verwendet werden können, wenn in einer anderen Zelle zuvor etwas eingetragen wurde.

Ich hatte die Liste bisher mit =wenn(B5="";"";Listenbereich). Das funktionierte. Wenn in B5 nix stand, was die entsprechende Zelle des Listeneintrags auch leer.
Wenn ich für den Listenbereich hier nun aber den Namen einsetze, gibts ne Fehlermeldung....Quelle muss eine getrennte Liste oder ein Bezug........
Anzeige
AW: dynamisches Dropdown
11.01.2026 18:46:12
Uduuh
Hallo,
=WENN(B5;Leistung;"")
funktioniert.

Gruß aus'm Pott
Udo
AW: dynamisches Dropdown
11.01.2026 18:55:01
Klaus
Hallo Udo,
stimmt, habe es allerdings auch schon mit meiner Formel so hingekommen (es muss nur in der B5 was drinstehen, sonst kommt Fehlermeldung) !

Wie kann ich aber mit dem Sverweis auf die Spalten B bis F hinter den Dropdown-Leistungsbegriffen zugreifen. Das mit der intelligenten... habe ich nicht geschnallt.

Bei Deiner Formel erscheint ja nur die Spalte A! Kann man dann trotzdem auf die Folgespalten zugreifen über SVerweis? Oder muss man diese Formel anpassen?
Anzeige
AW: dynamisches Dropdown
11.01.2026 19:19:12
Uduuh
Hallo,
für die Tätigkeit z.B
F5: =WENNFEHLER(SVERWEIS(P5;PUMPreisliste!A:B;2;);"")

Und wie schon angemerkt solltest du die Spaltenbezeichnungen in Leistungen und Preisliste gleich halten. Das vereinfacht einiges.

Gruß aus'm Pott
Udo
AW: dynamisches Dropdown
11.01.2026 19:48:11
Klaus
Und wofür sind den jetzt die Namen, die festgelegt wurden (Leistung, Preisliste)? Haben die mit dem SVerweis überhaupt nichts zu tun? Dachte die würden da jetzt mit einfließen???
Anzeige
AW: dynamisches Dropdown
11.01.2026 22:37:35
Klaus
OK, da werde ich wohl eine Weile dran tüfteln müssen.... danke vielmals. Wäre ich nicht drauf gekommen mit Filter usw....

MIttlerweile habe ich ein anderes Problem, dass ich nun überhaupt nicht nachvollziehen kann.

Die Worksheet_Change Funktion zeigt überhaupt keine Wirkung mehr. Man könnte meinen, da würde irgendeine Bibliothek fehlen oder was weiß denn ich. Ich habe die ganzen Makros jetzt alle bis auf einen rausgenommen. Eigentlich ist da jetzt nur noch die die Funktion drin, dass er alle Felder (also die ich halt berücksichtigt hatte) leert, wenn in B5 das Datum gelöscht wird. Hab sogar PC neu gestartet. Keine Wirkung.

Das ist aktuell noch drin:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

'On Error GoTo Fehler


Application.EnableEvents = True
ActiveSheet.Unprotect




Dim objRange1 As Range, objCell1 As Range
If Not Intersect(Target, Cells(5, 2).Resize(100, 1)) Is Nothing Then
Set objRange1 = Intersect(Target, Cells(5, 2).Resize(100, 1))
For Each objCell1 In objRange1
With objCell1
Select Case UCase$(.Value)
Case Is = ""
Application.EnableEvents = False
.Offset(0, 2).Value = vbNullString
.Offset(0, 3).Value = vbNullString
.Offset(0, 11).Value = 0
.Offset(0, 12).Value = vbNullString
.Offset(0, 14).Value = vbNullString
.Offset(0, 15).Value = vbNullString
.Offset(0, 16).Value = vbNullString
.Offset(0, 17).Value = vbNullString
.Offset(0, 18).Value = vbNullString
.Offset(0, 19).Value = vbNullString
.Offset(0, 21).Value = vbNullString
.Offset(0, 23).Value = vbNullString
.Offset(0, 26).Value = vbNullString
Application.EnableEvents = True
End Select
End With
Next
End If

Dim objRange0 As Range, objCell0 As Range
If Not Intersect(Target, Cells(5, 3).Resize(100, 1)) Is Nothing Then
Set objRange0 = Intersect(Target, Cells(5, 3).Resize(100, 1))
For Each objCell0 In objRange0
With objCell0
Select Case UCase$(.Value)
Case Is = ""
Application.EnableEvents = False
'.FormulaLocal = "=WENN(ISTLEER(@INDIREKT(""B""&ZEILE()));"""";""PUM"")"
.FormulaR1C1 = "=IF(ISBLANK(RC2),"""",""PUM"")"
Application.EnableEvents = True
End Select
End With
Next
Set objRange0 = Nothing
'On Error GoTo 0
End If

End Sub

Kommt keine Fehlermeldung, passiert aber auch nichts..... ich kapiers nicht.... je länger ich probiere um so weniger funktioniert noch.... wollte eigentlich nur den Rat befolfen und die Formeln auf RC soweit möglich umstellen.... habe ich da Fehler gemacht???
Anzeige
AW: dynamisches Dropdown
12.01.2026 00:54:18
Uduuh
dann lad doch mal den aktuellen Stand hoch
AW: dynamisches Dropdown
12.01.2026 10:37:10
schauan
Hallöchen,

Die Worksheet_Change Funktion zeigt überhaupt keine Wirkung mehr.

Bedeutet das, dass das Makro nicht durchlaufen? Dann führe Application.EnableEvents = True in einem gesonderten Makro aus ...
AW: dynamisches Dropdown
14.01.2026 11:08:44
Klaus
Sorry, hatte die die letzten Tage keine Zeit hier weiterzumachen....

Gerade meinen PC hochgefahren und siehe da, der Makro lief. Zumindest einmal, dann wieder nicht mehr..... Ergo muss da ja irgendwo ein Fehler drin sein. Also:


Ich bin ja so ein Depp....

Ich habe ja noch ein paar andere Makros in der Datei. Und da drin wird Application.EnableEvents = False auch ausgeführt aber eben nicht mehr Application.EnableEvents = True.

Das habe ich jetzt korrigiert und zumindest momentan scheint der Worksheet_Change zu funktionieren.

Darauf bin ich aber bisher nicht gekommen, weil ich im Worksheet_Change ganz am Anfang ja auch ein Application.EnableEvents = True gesetzt hatte bzw. hinter den Fehlerhandler. Ein Fehler wurde aber nicht angezeigt.... egal, momentan läuft es (noch).

Anzeige
AW: INDIREKT Verschiedene Bereichsdefinitionen für Sverweis
10.01.2026 15:28:30
Klaus
Hallo Udo,

in der Tat muss ich für jeden Kunden eine eigene Preisliste stricken..... sind eigentlich keine Kunden, sondern Auftraggeber und jeder zahlt anders....

Das Indirekt mit Zeile hat einen anderen Hintergrund... ich habe versucht, eine unzerstörbare Tabelle zu erstellen. Sprich, wenn es doch mal jemand gelingt, eine Formel zu löschen oder sonst was, erstellt sich die Tabelle mittels Makro wieder automatisch. Würde ich hier mit absoluten Zellenangaben arbeiten, wäre in jeder Zeile der gleiche Zeilenbezug....
Anzeige
AW: INDIREKT Verschiedene Bereichsdefinitionen für Sverweis
10.01.2026 18:51:46
daniel
HI
wenn du Formeln per Makro erstellst, nutze immer die R1C1-Adressierungsart anstelle der A1-Adressen.
damit ist der Formeltext nicht mehr abhängig von der Zelle, in welche die Formel geschrieben wird und alle Formeln die per Copy-Paste übertragen wurden, haben den Exakt gleichen Formeltext.

Gruß Daniel
Anzeige
AW: INDIREKT Verschiedene Bereichsdefinitionen für Sverweis
10.01.2026 19:52:11
Klaus
Hallo Daniel,

alles klar, werde ich angehen. Danke!!!
AW: INDIREKT Verschiedene Bereichsdefinitionen für Sverweis
10.01.2026 19:44:10
Onur
Dafür gibt es Blattschutz, wo du alle Formeln gegen Veränderungen sperren kannst, sogar mit Passwort.
AW: INDIREKT Verschiedene Bereichsdefinitionen für Sverweis
10.01.2026 19:55:50
Klaus
Ja, weiß ich und wird auch verwendet, aber ich möchte da auf Nummer sicher gehen.... doppelt hält besser....
Anzeige
AW: INDIREKT Verschiedene Bereichsdefinitionen für Sverweis
10.01.2026 14:13:42
Klaus
Hi Edgar,

das ist ja nicht das Problem....

Spalte P wird ja durch eine Auswahlliste befüllt. Wenn das passiert ist, ist der Eintrag dort ja nun der Suchbegriff für den SVerweis....

Nur wenn da also was passendes drin steht gehts überhaupt erst weiter...

Mir geht es jetzt darum wo danach gesucht wird. Und diese Matrixangabe (sollen ja eigentlich verschiedene sein) soll der Indirekt-Befehl herhalten. Nur dass hier eben immer der gleiche Matrixbereich erzeugt wird, obwohl ich in den Zellen BB2 bis BG2 verschiedene Bereiche eingetragen habe....
Anzeige
AW: INDIREKT Verschiedene Bereichsdefinitionen für Sverweis
10.01.2026 14:25:26
Klaus
Habe die Datei doch bereits angehängt, oder ist die nicht zu finden (2.ter Beitrag von mir - mache das nicht so oft, sorry).

Sinngemäß brauche ich etwas wie ein Indirekt im Indirekt....

Die Daten in den Zellen BB2 bis BG2 sollen quasi einen Matrixbereich erzeugen. In BB2 steht das Tabellblatt in den Spalten danach verschiedene Bereichsangaben. Mit der Angabe der folgenden Zahl (glaube wird in der nackten Formel mit A1 bezeichnet) soll dann der Bereich gebildet werden, also aus BB2 =Preisblatt! und sagen wir man durch die 3 dann halt die Bereichsangabe aus Zelle BD2 ergibt sich dann "Preisblatt!$a$4:$c$6". Und das soll dann die Matrixangabe für den eigentlichen SVerweis ergeben.... und über die zweite "A1-Angabe" den Zielwert zurückliefern.

Also soll es jedenfalls, bei mir wird aber generell "Preisblatt!$a$4:$f$5" als Matrix angezeigt. Das verstehe ich halt nicht....
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige