Nein, ich habe deine Kochkünste nicht kritisiert. Ich habe lediglich gesagt, dass wir den einzigen Hund im Ort haben, der nicht am Tisch bettelt.

Hallo Herr Martin,

ich filtere in dem Kunden-Excel die Werte mittels einer Pivot-Tabelle. Der Filter zeigt aber nur die tatsächlich vorhandenen Werte an.

Jetzt möchte ich im Pivot einen festen Wertefilter definieren, unabhängig welche aktuellen Werte vorhanden sind:

Beispiel:

Ich möchte immer alle Einträge < 24 Stunden gefiltert haben

Aktuelle Werteinträge sind 1 und 2 Stunden. Den Filter 24 Stunden kann ich aber erst auswählen, wenn es mindestens einen Eintrag mit 24 Stunden gibt. Lässt sich dies im Pivot einstellen. Ich habe bislang keine Möglichkeit gefunden.

Hallo Herr H.,

der Gedanke der Pivottabelle ist ja, die vorhandenen Werte zu gruppieren und die Zahlen zusammenzufassen (aggregieren, also: summieren, zählen, …) Wenn Sie andere Werte sehen möchten, müssen diese in der Liste stehen (man müsste sie ausblenden).

Hallo Herr Martin,

es gibt im Office 365 Excel den Befehl FILTER, der genau das macht, was ich benötige. Nur hat mein Kunde leider eine ältere Version. Lässt sich das in einem älteren Excel mit einem workaround bauen?

Viele Grüße

Hallo Herr H.,

Nein – bitte nicht die Funktion FILTER verwenden – sonst hat die Firma ein Problem!

Was würde ich tun?

* entweder die Daten dazwischen verstecken (und die Zeilen ausblenden)

* oder die Daten auf einem anderen Blatt sammeln und dort alle notwendigen Daten einsammeln.

Hum. Sonst? Müsste mal überlegen

Liebe Grüße

Rene Martin

Hallo Herr Martin,

Filter geht beim Kunden nicht, aber ist die Funktion so gefährlich?

Ich habe mittels Pivot die Daten auf ein anderes Blatt ausgelagert und nutze das Ergebnis für die Dropdown-Felder.

Ich habe jetzt einen Dummy-Wert eingefügt, damit die Pivots die Auswahlfelder behalten, auch wenn keine Daten auszuwerten sind. Ggf. wäre eine Lösung ganz ohne Pivots zu arbeiten, aber dazu bräuchte ich so etwas wie die Filter-Funktion.

Hallo Herr H.,

nein, nein: FILTER & co sind klasse – Problem: nicht jeder hat diese Funktionen. Deshalb: bauen wir den Filter doch nach!

Werfen Sie mal einen Blick in meine Liste: In Spalte H befinden sich die sechs Werte. Einer wird in J2 ausgewählt. In Spalte L ermittle ich die Zeilennummer, falls gefunden. In Spalte M sammle ich diese Nummern ein; gruppiere sie also. Mit BEREICH.VERSCHIEBEN baue ich die Liste ab O1 auf (ich hätte auch INDIREKT oder INDEX / VERGLEICH verwenden können).

Ich könnte es auch mit AGGREGAT aufbauen – aber lassen wir das …

kommen Sie damit klar?

Liebe Grüße

Rene Martin

Wenn du die Wahl hättest zwischen Traumfrau und Traumauto – welche Felgen würdest du dann nehmen?

Hallo Rene!

Benötige bitte deine Hilfe.

Zum Jahresende fallen die Auszahlungen der Subventionen an.

Die vorgelegten Unterlagen entsprechen nicht immer den Formvorschriften.

Damit bei dem Jahresbericht zu lesen ist warum etwas nicht anerkannt wurde habe ich die beiliegende Tabelle erstellt.

Nun möchte ich, dass bei der Zusammenfassung der Paare bei den Anmerkungen und Beleg-Nr. die Ziffern aus der Aufstellung jeweils in einer Zwelle eingetragen werden.

Bitte um deine bewährte Hilfe.

Bleib gesund,

mit besten Grüßen

Peter

Meine erste Überlegung: mit VERGLEICH(F28;tbl_KF_Kosten[Turnierpaar];1)-VERGLEICH(F28;tbl_KF_Kosten[Turnierpaar];0) kann ich die Differnez zwischen letzten gefundenem Wert und erstem gefundenem Wert ermitteln. BEREICH.VERSCHIEBEN liefert mir den Bereich; TEXTVERKETTEN fasst sie zusammen. Das Problem hierbei ist jedoch, dass die Werte nicht gruppiert untereinander stehen und auch nicht alphabetisch sortiert sind. Also: zweiter Versuch: FILTER:

=TEXTVERKETTEN(",";WAHR;FILTER(tbl_KF_Kosten[Bel
Klub];tbl_KF_Kosten[Turnierpaar]=F28;""))

Und damit geht es hervorragend!

Mein Schatz sagt oft „Du Hengst“ zu mir. Vorhin zum Beispiel: „du Hengst nur noch auf der Couch rum!“

Einfach nicht aufgepasst!

Programmieren Sie VBA? Programmieren Sie Formeln in VBA? Auf einem Tabellenblatt befinden sich in den Spalten BJ und BL Daten, die vertikal angeordnet sind:

Auf einem anderen Blatt wird Bezug auf diese Daten genommen:

Während ich die erste Spalte nach unten ziehen kann, muss ich die Formeln der ersten Zeile getrennt eingeben – ich möchte weder mit MTRANS, INDIREKT noch mit BEREICH.VERSCHIEBEN arbeiten. Es handelt sich um maximal sechs Werte.

Die Formeln müssen per VBA neu geschrieben werden. Der Makrorekorder ermittelt für die Formel

=WENN(tbl_Basisdaten!BJ2="";"";tbl_Basisdaten!BJ2)

der Zelle A2 den VBA-Code:

ActiveCell.FormulaR1C1 = " =IF(tbl_Basisdaten!RC[61]="""","""",tbl_Basisdaten!RC[61])"

Dabei ist RC[61] ein relativer Bezug: R -> gleiche Zeile; C[61] -> Spalte um 61 Spalten verschoben. Wäre der Bezug absolut ($BJ$2) wäre der Code:

R2C62

also: in Zeile 2 und in Spalte 62 – egal, wo sich die Zielzelle befindet. Der Code wird in einer Schleife verwendet:

For i = 1 To 6
   ThisWorkbook.Worksheets("tbl_Risikomatrix").Range("A1").Offset(i, 0).FormulaR1C1 = _
      "=IF(tbl_Basisdaten!RC[61]="""","""",tbl_Basisdaten!RC[61])" ' -- erste Spalte A
Next i

Klappt famos! Und nun die erste Zeile. Der Makrorekorder zeichnet auf:

ActiveCell.FormulaR1C1 = _
    "=IF(tbl_Basisdaten!R[1]C[62]="""","""",tbl_Basisdaten!R[1]C[62])"

Das kann doch leicht angepasst werden:

For i = 1 To 6
    ThisWorkbook.Worksheets("tbl_Risikomatrix").Range("A1").Offset(0, i).FormulaR1C1 = _
        "=IF(tbl_Basisdaten!R[" & i & "]C[62]="""","""",tbl_Basisdaten!R[" & i & "]C[62])" ' -- erste Zeile 1
        
Next i

Padautz – das funktioniert nicht! In B1 greife ich auf Spalte 63 zu, also 62 Spalten „neben mir“. In C1 dagegen benötige ich die Spalte, die sich 61 Spalten neben mir befindet, in D1 dagegen 60 Spalten. Also noch einmal:

For i = 1 To 6
    ThisWorkbook.Worksheets("tbl_Risikomatrix").Range("A1").Offset(0, i).FormulaR1C1 = _
        "=IF(tbl_Basisdaten!R[" & i & "]C[" & (63 - i) & "]="""","""",tbl_Basisdaten!R[" & i & "]C[" & (63 - i) & "])" ' -- erste Zeile 1
Next i

Und das klappt! Man muss so aufpassen bei den Bezügen! Und beim Umdenken von =BL2 auf =R[1]C[62].

Wie die Silvesterfeier war? – Weiß nicht – ich habe noch keine Fotos gesehen.

Mit den drei Funktionen BEREICH.VERSCHIEBEN, INDIREKT und XVERWEIS kann man einen dynamischen bereich aufspannen. Diese drei Funktionen kann man als Namen speichern (ich habe sie mal Jahr1, Jahr2 und Jahr3 genannt).

Die Namen mit den Funktionen BEREICH.VERSCHIEBEN und XVERWEIS kann man wunderbar in einem Diagramm verwenden:

INDIREKT aber nicht!

Gott ist alleinerziehend

Etwas verblüfft war ich in der letzten Excelschulung. Ich löse mit den Teilnehmern folgendes Problem: Es werden in zwei verschiedenen Zellen zwei Monate ausgewählt und die Kosten von – bis werden berechnet. BERICH.VERSCHIEBEN eignet sich hervorragend zur Lösung dieses Problems.

Meine Lösung:

BEREICH.VERSCHIEBEN:

Beginne bei A1.

Suche E1 im Datumsbereich mit der Funktion VERGLEICH und wandere so viele Zeilen nach unten.

Wandere eine Spalte nach rechts.

Ermittle die Höhe des aufzuspannenden Bereichs als Differenz beider Werte Ende – Anfang, die mit VERGLEICH berechnet werden.

Die Breite des Bereichs ist eine Spalte.

Klappt. Ein Teilnehmer präsentiert eine andere Lösung, die er parallel entwickelte:

SUMME(BEREICH.VERSCHIEBEN(A1;VERGLEICH();1:BEREICH.VERSCHIEBEN(A1;VERGLEICH();1))

Mich irritiert der Doppelpunkt. Dann wird mir klar, wie der Teilnehmer gedacht und wie die Formel gearbeitet hat:

Mit =C3 wird eine Referenz auf die Zelle C3 gesetzt. Diese Formel liefert den Wert der Zelle C3. Also steht „C3“ für zweierlei: die Zelle C3 als Objekt, als Bezug, aber auch der Inhalt der Zelle C3.

Und genau so arbeitet seine Formel – Während „meine“ Funktion BEREICH.VERSCHIEBEN den Wert der Zelle (beziehungsweise die Werte der Zellen) zurückgibt, setzt er einen Bezug auf die erste und die letzte Zelle und spannt zwischen ihnen einen Bereich auf, dessen Werte summiert werden.

Verblüffend und clever!

Ich bin nicht perfekt. Aber trotzdem sehr gut gelungen.

Hallo Herr Martin,

nach meinem Urlaub komme ich nun endlich dazu diverse Dinge aus unserer Schulung umzusetzen. Wie es der Teufel will, komme ich an einer Stelle absolut nicht weiter.

Ich möchte ein dynamisches Diagramm erstellen. Dies funktioniert auch für die Werte darin (also die Linien) und für die Beschriftung sofern diese ein Datum oder eine Zahl ist. Ich habe nun aber häufiger den Fall, dass die Achsenbeschriftung ein Text ist. Das bekomme ich nicht hin! Es ergibt mir schon kein korrektes Ergebnis bei der Formel, wodurch das Diagramm natürlich auch nicht funktioniert.

Ich habe eine beispielhafte Datei angehängt. Es wäre super wenn Sie sich das mal ansehen und mir kurz Rückmeldung geben könnten. Ich finde einfach keine Lösung. Auch die Kolleginnen sind ratlos.

Herzlichen Dank im Voraus & viele Grüße,

SK.

Hallo Frau K.,

da waren drei Fehlerchen drin:

Sie müssen drei Namen anlegen: zwei für die Linien (hatten Sie) und einen weiteren für die Datenbeschriftung (der hat gefehlt). Und den verwenden Sie in Daten auswählen / horizontale Achsenbeschriftung.

Und: Sie müssen bei der Formel BEREICH.VERSCHIEBEN übers Ziel rausschießen: Sie zählen mit ANZAHL wie viele Daten Sie erfasst haben im Bereich (ich habe nun $A$6:$A$1700 verwendet).

Und: bitte ermitteln Sie die Anzahl der Texte mit der Funktion ANZAHL2 – nicht mit ANZAHL. Dann klappt es.

schöne Grüße

Rene Martin

 

So ist es gut – komm auf die dunkle Seite der Macht!

Wollt ihr wissen, wie man Excel zum Absturz bekommt? Man muss die Funktion AGGREGAT in einem Namen verwenden und diesen in einem Diagramm.

Das Ganze geht so:

Eine Tabelle holt sich Werte aus einer anderen Liste. Da einige Werte nicht gefunden werden, werden diese als #NV angezeigt. In einem Diagramm werden die entsprechenden Kategorien verwendet:

Unschön, denke ich mir. Die Jahreszahlen, die keinen Wert haben, sollen ausgeblendet werden. Und lege vier Namen an: „Bau“, „IT“, „Verwaltung“ und „sonstiges“. Sie haben die Form:

=BEREICH.VERSCHIEBEN(Tabelle1!$D$2;1;0;1;AGGREGAT(2;6;Tabelle1!$D$3:$J$3))

AGGREGAT deshalb, weil es die Fehlerwerte übergeht.

Ich versuche nun den Namen im Diagramm einzufügen, das heißt aus der ersten Datenreihe

=DATENREIHE(Tabelle1!$C$3;Tabelle1!$D$2:$J$2;Tabelle1!$D$3:$J$3;1)

wird ein:

=DATENREIHE(Tabelle1!$C$3;Tabelle1!$D$2:$J$2;Tabelle1!Bau;1)

Das Ergebnis: ABSTURZ!

Die Lösung ist simpel: Man lagert die Funktion AGGREGAT in eine Zelle aus (hier: L3). Man gibt ihr einen Namen – beispielsweise AGGREGAT.

Und ändert nun die Namen in:

=BEREICH.VERSCHIEBEN(Tabelle1!$D$2;1;0;1;AGGREGAT)

Nun kann der Bereich geändert werden:

=DATENREIHE(Tabelle1!$C$3;Tabelle1!$D$2:$J$2;Tabelle1!Bau;1)

Wer dies ausprobieren möchte, kann die Dateien herunterladen: AGGREGAT und AGGREGAT02.

 

Feiertage wären klasse

Vor ein paar Tagen erreichte mich folgende Anfrage:

Sehr geehrte Damen und Herren,

zu dem in Betreff genannten Thema haben wir noch eine Frage:  Die Videoanleitung  zum Erstellen eines Internationalen Kalenders konnten wir gut nutzen. In dieser Anleitung wird u.a. geschildert, wie man Feiertage durch eine bedingte Formatierung farblich hervorhebt. Ganz schick wäre es noch, wenn zu diesem farblich markierten Feiertage auch automatisch der Feiertagsname mit angezeigt werden könnte. Ein entsprechendes Tabellenblatt mit diesen Informationen wurde im Verlaufe der Anleitung angelegt. Bei festen Feiertagen wie Neujahr. 1. Mai etc, könnte man dies händisch lösen, doch bei variablen Feiertagen wie Ostern und Pfingsten etc. wäre es wünschenswert, wenn diese gleich automatisch mit angezeigt werden. Leider wurde in dieser Videoanleitung nicht darauf eingegangen. Mit welcher Funktion kann der Feiertagsname automatisch angezeigt werden? Danke schon vorab für Ihre Hilfe.

Mit freundlichen Grüßen / with best regards

#####

Zur Info: Ich habe einen Kalender erstellt, der – nach Änderung des Jahres die Feiertage farblich kennzeichnet. Das klappt mit der bedingten Formatierung und der Funktion ZÄHLENWENN gut und einfach. Die Feiertage (hier: die bayrischen) habe ich auf ein zweites Tabellenblatt ausgelagert.

Die Feiertagsliste

Die Feiertagsliste

Der Kalender

Der Kalender

Ich habe zirka eine halbe Stunde benötigt, damit die Feiertage angezeigt werden – eine hübsche kleine Fingerübung:

Das Ergebnis

Das Ergebnis

Wer knobelt mit? Den ersten Kalender könnt Ihr unter Kalender herunterladen.

Viel Spaß im neuen Jahr mit Excel.

Rene

Diagramm zeigt nicht die Datenquelle an

Wenn ich ein Diagramm selektiere und über Entwurf / Daten / Daten auswählen den Bereich ansehen möchte, woher Excel die Daten bezieht, erhalte ich nur den lakonischen Kommentar „Der Datumsbereich ist zu komplex, um angezeigt zu werden. Wenn ein neuer Bereich ausgewählt wird, werden alle Reihen im Bereich ‚Reihe‘ ersetzt.“ Was heißt denn das?

Seltsamer Datenbereich

Seltsamer Datenbereich

Die Antwort: Über ein Dropdownfeld in Zelle AB12 wird das Jahr ausgewählt. In Zelle AC12 wird mit einer Formel die Zeile berechnet, aus der Daten gezogen werden. Im Register Formeln / Definierte Namen / Namensmanager werden zwei Namen definiert („Frauen“ und „Männer“), die ausgehend von A1 einen Bereich berechnen, der um so viele Zeilen nach unten versetzt liegt wie in AC12 berechnet wurde. Diese beiden Bereiche wurden nun im Exceldiagramm verwendet, so dass der Anwender das Jahr auswählen kann und das Diagramm dynamisch den Bereich darstellt. Erstaunlicherweise kann Excel diese Formel in der Datenquelle nach einem erneuten Öffnen nicht mehr anzeigen.

Ein dynamisches Diagramm

Ein dynamisches Diagramm