Versuchs doch mal mit INDIREKT

1. Beschreibung der Funktion

Die Excel-Funktion INDIREKT habe ich schon in vielen Beiträgen eingesetzt, sie aber bisher nicht erläutert.

INDIREKT ist im Funktionskatalog von Excel unter der Kategorie „Nachschlagen und Verweisen“ zu finden.

Die Funktion kann nützlich sein, wenn in Dateien mit vielen Arbeitsblättern dynamisch auf bestimmte Zellen oder Zellbereiche in den Blättern zugegriffen werden muss.

Doch Achtung! INDIREKT ist eine volatile Funktion. Peter Haserodt von Online-Excel schrieb einmal dazu [1]:

Indirekt sollte nur sehr sparsam angewendet werden und nicht bei rechenintensiven Formeln. Diese Funktion hat nämlich den großen Nachteil, dass sie volatil ist, d.h. sie wird immer neu berechnet, nach jeder Eingabe. Selbst dann, wenn sie in einer anderen geöffneten Arbeitsmappe steht!

Wichtig zu wissen ist auch, dass mit INDIREKT nur auf geöffnete Dateien zugegriffen werden kann.

Was schreibt die Excel-Hilfe?

Hier heißt es, INDIREKT „Gibt den Bezug eines Textwertes zurück. Bezüge werden sofort ausgewertet, so dass die zu ihnen gehörenden Werte angezeigt werden.“

Die Syntax lautet:

=INDIREKT(Bezug;[A1])

Bezug ist eine erforderliches Argument, möglich ist der Bezug auf eine Zelle, die einen Bezug in der A1-Schreibweise, einen Bezug in der Z1S1-Schreibweise, einen definierten Namen als Bezug oder einen Zellbezug als Zeichenfolge enthält.

Das Argument A1 kann optional eingesetzt werden. Es ist ein Wahrheitswert, der angibt, welcher Art der Bezug in der Zelle ist.

Ist A1 gleich WAHR, liegt die A1-Schreibweise vor.

Ist A1 gleich FALSCH, liegt die Z1S1-Schreibweise vor.

2. Beispiele

Beispiel 1: Wert einer Zelle im gleichen Arbeitsblatt abfragen

Die nachfolgende Tabelle (Arbeitsblatt Tabelle2) zeigt 12 Monate und Umsatzgrößen.

Indirekt1

Mit INDIREKT willst du den Umsatz des Monats, der in Zelle F2 angegeben ist, in Zelle F4 zeigen. Du schreibst in Tabelle2 in F4 die Formel

=INDIREKT(„C“&$F$2+2)

Warum das „+2“? Weil die Monate erst in Zeile 3 beginnen. Der dritte Monat befindet sich in Zeile 5.

Änderst du den Eintrag in F2, ändert sich das Ergebnis in F4 entsprechend.

Beispiel 2: Wert einer Zelle in einem anderen Arbeitsblatt abfragen

Angenommen, die Tabelle steht im Arbeitsblatt „Tabelle2“, das Ergebnis soll im Blatt „Tabelle1“ gezeigt werden.

Dann schreibst du in F4 die Formel:

=INDIREKT(„Tabelle2!C“&Tabelle1!F2+2)

und erhältst den gesuchten Umsatz.

Beispiel 3: Summen von Werten abfragen

In diesem Beispiel suchst du die Summe über mehrere Monate des Jahres, z.B. von März (3) bis Mai (5). Die Tabelle befindet sich wieder in „Tabelle2“, das Ergebnis soll ebenfalls in „Tabelle1“ gezeigt werden.

Indirekt2

Verwende diese Formel in F5:

=SUMME(INDIREKT(„Tabelle2!C“&Tabelle1!F2+2):INDIREKT(„Tabelle2!C“&Tabelle1!F3+2))

Wenn dir die Zelladressen der jeweiligen Monate bekannt sind, kannst du auch so vorgehen:

Indirekt3

Schreibe dazu in F4 die Formel:

=SUMME(INDIREKT($F$2))

Beispiel 4: Wert aus einem namentlichen Bereich abfragen

Für dieses Beispiel benennst du den Bereich B3:B14 mit „Monat“ und den Bereich C3:C14 mit „Umsatz“.

Du willst in Tabelle2 in F5 z.B. den Umsatz des Monats März sehen.

Schreibe:

=INDEX(Umsatz;INDIREKT(„F2“);1)

Die Formel macht allerdings nicht viel Sinn, zeigt aber die Funktionsweise von INDIREKT.

Einfacher wäre es so:

=INDEX(Umsatz;F2;1)

Beispiel 5: Summe von Werten eines namentlichen Bereiches abfragen

Willst du nicht nur den Umsatz eines Monats sehen, sondern z.B. die Summe von Mai bis August, kannst du diese Formel verwenden (in F2 steht eine 5, in F3 steht eine 8).

=SUMME(INDEX(Umsatz;INDIREKT(„F2“);1):INDEX(Umsatz;INDIREKT(„F3“);1))

Beispiel 6: Mit INDIREKT auf einen durch Verkettung erzeugten Bereichsnamen zugreifen

Dir liegen die monatlichen Umsätze aus drei Jahren vor. Du vergibst Namen für die Bereiche:

  • C5:C16 Umsatz2014
  • F5:F16 Umsatz2015
  • I5:I16 Umsatz2016
Indirekt4

Für die Abfrage hast du diese Felder vorbereitet:

Indirekt5

In C19 schreibst du das Jahr, in C21 den Monat deiner Wahl.

C23 enthält die Formel

=“Umsatz“&C19

In C25 schreibst du schließlich die Formel

=INDEX(INDIREKT(C23);C21;1)

In C25 kannst du jetzt den Umsatz für den 6. Monat des Jahres 2014 ablesen.

INDIREKT hast du dazu verwendet, den Namen der Matrix, der in C23 durch Verkettung erzeugt wurde, in die INDEX-Formel einzugeben.

Änderst du den Eintrag in C19 auf 2015, erhältst du den Umsatz für Juni 2015. Das Spiel kann beliebig weiter geführt werden.

Ein ausführliches Beispiel findest du u.a. in meinem Beitrag „Arbeiten mit der rS1-Methode – Namenskonventionen und Beispiel„.

Beispiel 7: Die verschiedenen Schreibweisen

In der A1-Schreibweise suchst du z.B. den Umsatz, der in Zelle C10 steht.

Schreibe in Zelle F2 somit „C10“ hinein.

Indirekt6

Der Umsatz soll in Zelle F4 angezeigt werden. Schreibe dort diese Formel:

=INDIREKT(F2;WAHR)

Das Argument WAHR deutet auf die A1-Schreibweise hin, als „C10“.

Mit der Formel wird nun indirekt auf den Inhalt der Zelle C10 zugegriffen. In C10 wird der Wert 15.464 gefunden.

Mit der Z1S1-Schreibweise werden relative Bezüge hergestellt. Schreibe in F4 diese Formel:

=INDIREKT(„Z10S3“;FALSCH)

FALSCH weist auf die Z1S1-Schreibweise hin. Mit der Formel wird nun auf den Inhalt der Zelle in Zeile (Z) und Spalte (S3) zugegriffen. Dort steht, natürlich, der Wert .

Ebenso könntest du die Zelle F2 statt mit „C.“ jetzt mit „ZS3“ füllen.

Indirekt7

Schreibe in F4 diese Formel:

=INDIREKT(F2;FALSCH)

und du erhältst wieder das Ergebnis 15.464.

56f6592f6a724cacb9961f7ded52bc0f

[1] http://www.online-excel.de/excel/singsel.php?f=24

VBA-Methoden: Arbeitsblätter zählen, Anzahl festlegen

Wie viele Arbeitsblätter hat eine Arbeitsmappe?

Befindest du dich in einer geöffneten Arbeitsmappe, kannst du das sofort sehen, wenn sich die Anzahl auf ein überschaubares Maß beschränkt.

Geht es aber um 95 oder 134 Arbeitsblätter, müsstest du zählen.

Das aber kannst du auch durch ein kleines Makro erledigen lassen.

Sub ArbBlattZählen1()
Dim intZahl As Integer
intZahl=ActiveWorkbook.Sheets.Count
MsgBox intZahl
End Sub

So sieht die Antwort aus. Bestätige sie mit „OK“.

Nichtnumerisch34

Lässt sich die Anzahl der Arbeitsblätter für eine andere, geöffnete, Mappe ermitteln?

Sub ArbBlattZählen2()
Dim intZahl As Integer
Workbooks(„VBA_Datei öffnen.xlsm“).Activate
intZahl=ActiveWorkbook.Sheets.Count
MsgBox intZahl
End Sub

Hier gibt die MsgBox z.B. die Anzahl „3“ zurück.

Nun fragst du dich, ob du diese Abfrage auch an eine geschlossene Datei richten kannst.

Nachfolgendes Makro verwendet die GetObject-Funktion, die ich hier nicht weiter erläutere. Nur soviel, GetObject wird für den Zugriff auf ein ActiveX-Object verwendet. Mit der Set-Anweisung wird dem Objekt die Objektvariable zugewiesen.

Sub ArbBlattZählen3()
Dim intZahl As Integer
Dim wb As Workbook
Set wb=GetObject(„C:\Excel\VBA\VBA_Arbeitsblätter Anzahl.xlsm“)
intZahl=wb.Sheets.Count
MsgBox intZahl
End Sub

Die MsgBox gibt hier die Anzahl „5“ zurück.

Anzahl Arbeitsblätter festlegen

Eine neue Excel-Arbeitsmappe enthält standardmäßig drei Arbeitsblätter. Dies ist in den Excel-Optionen unter „Allgemein“ so eingestellt.

Wenn du aber eine neue Mappe haben willst, die 12 Arbeitsblätter enthält, kannst du das mit einem Makro erledigen lassen.

Du fragst dazu zuerst die hinterlegte Anzahl der Arbeitsblätter für neue Arbeitsmappen ab.

Dim intBlatt As Integer
intBlatt=Application.SheetsInNewWorkbook

Dann legst du die Anzahl der Blätter für deine neue Mappe fest, in diesem Fall sollen es 12 sein.

Application.SheetsInNewWorkbook=12

Jetzt legst du eine neue Mappe an und gibst ihr einen Namen. Wie das geht, habe ich in meinem Beitrag „VBA-Methoden: Eine Datei neu erstellen und speichern als“ beschrieben:

Workbooks.Add
ActiveWorkbook.SaveAs Filename:=“C:\Excel\VBA\VBA_NeuDatei.xlsx“

Den Ablageort gibst du mit der Pfadangabe gleich mit an.

Du hast jetzt eine neue Arbeitsmappe mit 12 Arbeitsblättern.

Nun solltest du die Einstellung für die Anzahl der Blätter wieder auf den Standard setzen und die Datei speichern und schließen.

Application.SheetsInNewWorkbook=intBlatt
ActiveWorkbook.Save
ActiveWorkbook.Close

Das Makro gesamt:

Sub ArbBlätter()
Dim intBlatt As Integer
intBlatt=Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook=12
Workbooks.Add
ActiveWorkbook.SaveAs Filename:=“C:\Excel\VBA\VBA_NeuDatei.xlsx“
Application.SheetsInNewWorkbook=intBlatt
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

Natürlich kannst du den 12 Arbeitsblättern in deiner neuen Mappe gleich noch neue Namen geben, z.B.“Januar“ bis „Dezember“.

Füge dazu im einfachsten Weg diese Codezeilen in dein Makro vor den Anweisungen .Save und .Close ein:

ActiveWorkbook.Sheets(1).Name=“Januar“
ActiveWorkbook.Sheets(2).Name=“Februar“

usw. bis „Dezember“.

Summe unter Bedingungen bei nichtnumerischen Werten

Einleitung

Angeregt durch die Anfrage eines Lesers, die ich zunächst nicht beantworten konnte, ist dieser Beitrag entstanden.

In der Anfrage ging es darum, Flugzeiten zu addieren, wenn zwei Bedingungen in einer anderen Spalte eingehalten werden. Das Problem war, dass die Spalte mit den Flugzeiten auch nichtnumerische Werte enthalten sollten, z.B. in Klammern gesetzt oder mit Buchstaben versehen.

(4:00)

4:00 xz

Der Leser wollte das Problem mit der Funktion SUMMENPRODUKT lösen, hatte aber keinen Erfolg damit.

„Summe unter Bedingungen bei nichtnumerischen Werten“ weiterlesen

Die statischen Excel-Funktionen QUANTIL.INKL und QUANTIL.EXKL

In einem vorangegangenen Beitrag hast du etwas über die Funktion QUANTIL erfahren können. Mit der Excel-Version 2010 kamen zwei neue Funktionen dazu, QUANTIL.INKL und QUANTIL.EXKL.

Dieser Beitrag wird sich diesen Funktionen widmen und die Unterschiede aufzeigen.

„Die statischen Excel-Funktionen QUANTIL.INKL und QUANTIL.EXKL“ weiterlesen

Die statistische Excel-Funktion QUANTIL

Was sind Quantile?

Quantile sind Lageparameter einer Beobachtungsreihe. Sie bezeichnen Grenzwerte, wobei ein Teil der Reihe unterhalb und ein Teil oberhalb dieser Grenzwerte liegt.

Lageparameter? Damit bist du im Reich der deskriptiven Statistik angelangt. Dir ist bekannt, dass es in Excel eine Kategorie mit statistischen Funktionen gibt.

Bis einschließlich Excel 2007 gab es nur die Funktion QUANTIL. Ab Excel 2010 findest du zwei neue Ausgestaltungen, die Funktionen QUANTIL.INKL und QUANTIL.EXKL.

Mit der alten Funktion QUANTIL kann dennoch weiter gerechnet werden. Dieser Beitrag beschäftigt sich allein mit ihr.

Ein QUANTIL berechnen

Die Excel-Hilfe führt dazu aus, das die Funktion das Alpha-Quantil einer Gruppe von Daten zurück gibt. Mithilfe der Funktion kannst du einen Akzeptanzschwellenwert festlegen. Du kannst z.B. entscheiden, dass nur Bewerber eingeladen werden, deren Prüfungsergebnisse oberhalb des 85%-Quantils liegen.

Die Syntax lautet:

=QUANTIL(Matrix;k)

Matrix bezeichnet den Datenbereich, den du untersuchen willst. k ist der Alphawert aus einem geschlossenen Intervall zwischen 0 und 1. Beim 30%-Quantil z.B. schreibst du k als „30%“ oder als „0,3“.

Ein Beispiel soll dir die Funktionsweise näher bringen. Angenommen, dir liegen Angaben über den Wasserverbrauch eines Ortes über 15 Monate vor. Diese sind chronologisch, unsortiert, in einer Liste erfasst.

Quantil1

Du willst wissen, welche Werte die unterste und die oberste Toleranzgrenze bilden.

Die unterste Grenze soll durch das 25%-Quantil, die oberste durch das 75%-Quantil abgebildet werden. Zusätzlich errechnest du noch den Median mit der Funktion MEDIAN und als 50%-Quantil.

25%-Quantil =QUANTIL($C$4:$C$18;25%) =303.152,50

50%-Quantil =QUANTIL($C$4:$C$18;50%) =306.994,00

Median =MEDIAN($C$4:$C$18) =306.994,00

75%-Quantil =QUANTIL($C$4:$C$18;75%) =313.950,00

Der Mittelwert liegt übrigens bei =MITTELWERT($C$4:$C$18) =309.168,93 und ist damit größer als der Median.

Mit bedingter Formatierung willst du sichtbar machen, welche Werte zwischen dem 25%- und dem 75%-Quantil liegen. Dazu sortierst du die Liste aufsteigend nach Größe.

Quantil2

Markiere die Liste, gehe auf die Bedingte Formatierung und wähle die Regel „Formel zur Ermittlung der zu formatierenden Zellen verwenden“.

Schreibe die Formel:

=UND(C4>=$F$4;C4<=$F$5)

und formatiere „Ausfüllen“ mit grün.

In der Liste sind nun die sieben Werte zwischen 303.242 und 312.874 farblich markiert. Diese Werte liegen zwischen dem 25%- und dem 75%-Quantil. Vier Werte liegen darunter, vier Werte darüber.
036a6f8c0b72446a9e677594669d5784
Diese Erkenntnisse kannst du z.B. für Planungszwecke verwenden. Das 25%-Quantil kann als Worst Case, das 75%-Quantil als Best Case dienen.

WordPress Cookie Plugin von Real Cookie Banner