Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1884to1888
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datenauswertung mit PQ

Datenauswertung mit PQ
30.05.2022 10:01:12
Ulf
Hallo Ihr lieben Helfer,
ich könnte einen Denkanstoß gebrauchen von Euch. Ich werte vorhendene Daten mit PQ aus und lasse diese mittels Powerpivot in Diagrammen optisch darstellen. Mittels Datenschnitt greife ich auf die jeweilige Kalenderwoche zu die ich angezeigt haben möchte.
Nun suche ich allerdings eine Möglichkeit, dass mir zusätzlich zu der ausgewählten KW noch die letzten 4 KW davor jeweils einzeln mit angezeigt werden und der Rest davor in Summe ebenfalls. Ist so etwas möglich bzw. was muss ich dafür tun?
Gruß Ulf
Hier eine stark vereinfachte Beispieldatei:
https://www.herber.de/bbs/user/153314.xlsx

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenauswertung mit PQ
30.05.2022 10:38:51
ChrisL
Hi Ulf
Dass sich die Zahlen berechnen lassen, habe ich keine Zweifel, aber die Darstellung in Kombination mit Datenschnitt scheint mir problematisch. Ich denke du bräuchtest ein eigenes Datenfeld/Spalte (in PQ oder PP erzeugt) für die Darstellung. Jedoch benötigst du ein Measure (Werte statt Spalte), um den Datenschnitt einzubeziehen.
Ich kann mich bezüglich Machbarkeit irren, aber ein ähnliches Dilemma hatten wir kürzlich hier:
https://www.herber.de/forum/cgi-bin/callthread.pl?index=1884389
Jedenfalls im Anhang eine Lösung mittels PQ. Die KW (Annahme nur eine KW auf einmal, kein Multi-Select), wird in Zelle F2 eingetragen. Die Gruppierung/Aggregation habe ich Pivot überlassen, aber könnte natürlich auch bereits in PQ erfolgen. Letzteres würde die Datenmenge fürs Datenmodell reduzieren, dafür entfällt die Möglichkeit für einen Drill-Down.
https://www.herber.de/bbs/user/153316.xlsx
cu
Chris
Anzeige
AW: Datenauswertung mit PQ
30.05.2022 11:08:15
Ulf
Hallo Chris,
danke für Deine Ausführung und Hilfe, ich werde mir das gleich einmal ansehen und mich dann ggf. noch einmal dazu melden wenn ich nicht weiter komme.
Gruß Ulf
AW: Datenauswertung mit PQ
30.05.2022 12:09:39
Ulf
Hallo Chris,
also der Ansatz aus Deiner Beispieldatei scheint für mich schon zu passen, ich muss ihn nur für meine Tabelle anpassenDie Ausführungen in dem anderen Thread sind auch gut, aber ich werde erst den Versuch mit Deiner Datei hier starten. Die Auswertung ist für mich anscheinend einfacher.
Gruß Ulf
Danke für die Rückmeldung owT.
30.05.2022 12:20:31
ChrisL
.
AW: Danke für die Rückmeldung owT.
31.05.2022 10:50:22
Ulf
Hallo Chris,
hier noch kurz eine Rückmeldung:
Also die Version aus Deiner Beispieldatei funktioniert soweit super für mich, vielen Dank noch einmal dafür. Ich hatte es entsprechend angepasst.
Jetzt habe ich allerdings noch eine Frage bezüglich der automatischen Aktualisierung von Pivot Tabellen:
Ich lasse nun die KW mittels Formel auslesen und wenn ich die Daten dann aktualisiere wird auch alles richtig berechnet. Soweit so gut. Nun wollte ich aber nicht bei jeder Änderung die Pivot Tabelle selber aktualisieren und bin mittels VBA daran gegangen das ändern zu wollen.

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Worksheets("Pivottables").PivotTables("PivotTable22").PivotCache.Refresh
End Sub
Leider funktioniert das nicht und auch

Worksheet_SelectionChange(ByVal Target As Range)
funktioniert nicht. Ich möchte auch nicht bei jeder Änderung sämtliche Abfragen mittels

ThisWorkbook.RefreshAll
aktualisieren. Was muss ich hier nehmen, damit sich die Daten selbstständig bei neuen Werten aktualisieren oder gibt es da keine Möglichkeit? Wenn ich allerdings die KW selber ändere ohne den Formelbezug zu benutzen klappt es einwandfrei.
Gruß Ulf
Anzeige
Aktualisierung
31.05.2022 13:46:55
ChrisL
Hi Ulf
Um nur die eine Abfrage zu aktualisieren, anstelle von RefreshAll, würde ich bezogen auf die Beispieldatei die folgende Zeile vorschlagen:

ThisWorkbook.Connections("Abfrage - tab_QSKosten").Refresh
Die darauf aufbauende Pivot wird bei mir mitaktualisiert.
Einen idealen "Trigger" vorzuschlagen ist schwierig, da ich die Zusammenhänge nicht kenne. Klar ist, dass sich ein Change-Event auf diejenige Zelle/Tabelle beziehen muss, wo der Verweis herkommt, also diejenige Zelle, welche manuell geändert wird. Das Formelergebnis ist somit nicht als Auslöser für das Makro geeignet.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F2")) Is Nothing Then _
ThisWorkbook.Connections("Abfrage - tab_QSKosten").Refresh
End Sub
Falls die änderbare Zelle und das Abfrageergebnis auf unterschiedlichen Tabellen steht, könnte u.U. auch ein Worksheet-Activate Ereignis zweckmässig sein.
cu
Chris
Anzeige
AW: Aktualisierung
31.05.2022 14:51:35
Ulf
Hallo Chris,
danke für die Ausführungen. Die änderbare Zelle und das Abfrageergebnis sind auf unterschiedlichen Blättern. Die daraus resultierenden Diagramme ebenfalls. Der Refresh funktioniert ja auch bei der manuellen Eingabe in die änderbare Zelle, nur nicht wenn der Inhalt durch eine Formel ermittelt wird. Somit wird mir wohl wie Du bereits geschrieben hast nur das Worksheet-Activate Ereignis noch helfen können. Ich dachte es würde noch eine andere Möglichkeit bestehen das zu umgehen.
In der Tabelle werden aus zig Datensammlungen die Daten per PQ erfasst und gebündelt. Die Kollegen sollten dann eigentlich nur noch auf ihren jeweiligen Blättern die KW auswählen und hätten dann die Daten die sie brauchen. Da die KW aber über einen Datenschnitt ausgewählt wird, brauchen sie eigentlich nicht auf andere Blätter springen um das Worksheet-Activate Ereignis zu erhalten. Vielleicht löse ich das mit einem Makro, das sie dann für den speziellen Bereich einfach auslösen müssen, was ja im Endeffekt auch das Worksheet-Activate Ereignis wäre.
Trotzdem Danke noch einmal für die Unterstützung!
Gruß Ulf
Anzeige
AW: Aktualisierung
31.05.2022 14:59:22
ChrisL
Hi Ulf
Danke für die Rückmeldung. Aber ich glaube du hast mich noch nicht ganz verstanden. Change Ereignis funktioniert schon. Angenommen:
Tabelle1!A1 =Tabelle2!A1
Tabelle2!A1 = manuelle Eingabe
Das Change-Ereignis müsste dann in Tabelle2 eingefügt werden, auch obwohl das Resultat und die Query in Tabelle1 sind.
cu
Chris
AW: Aktualisierung
31.05.2022 15:14:20
Ulf
Hallo Chris,
ich habe Dich schon verstanden, nur das es keine manuelle Eingabe geben sollte. Daher kann es ja auch leider kein Change-Ereignis geben.
Ich habe es nun doch mit einem Makro direkt neben den Daten gemacht, was ich ursprünglich nicht vor hatte. Ursprünglich hatte ich das ja für die einzelne Pivot Tabelle machen wollen, aber mit dem von Dir vorgeschlagenen Code wären auch in dem Bereich ggf. folgende Auswertungen gleich mit aktualisiert.

ActiveWorkbook.Connections("Abfrage - qry_QSKostenKW").Refresh
Gruß Ulf
Anzeige
AW: Aktualisierung
31.05.2022 17:03:30
ChrisL
Hi Ulf
Die manuelle Eingabe der KW war wohl eine Fehlannahme meinerseits und die KW bezieht sich immer auf das aktuelle Datum.
Dann würde ich die Aktualisierung wahrscheinlich über folgende Einstellung lösen:
Userbild
Unter obiger Annahme könnte man den ParameterKW auch direkt in die PQ verwursten und es bräuchte keine zweite Tabelle mehr.
if [KWalt]>Date.WeekOfYear(DateTime.LocalNow(), Day.Sunday) then null else
if [KWalt]Date.WeekOfYear(DateTime.LocalNow(), Day.Sunday)-4 then
"Vormonat" else [KWalt]
Hierbei gibt es jedoch die Hürde, dass deine KW-Berechnung auf die KW-Berechnungsmethode von PQ abgestimmt werden müsste. KW können auf unterschiedliche Weisen berechnet werden:
https://support.microsoft.com/de-de/office/kalenderwoche-funktion-e5c43a03-b4ab-426c-b411-b18c13c75340
https://docs.microsoft.com/de-de/powerquery-m/date-weekofyear
https://datacornering.com/how-to-calculate-iso-week-number-in-power-query/
cu
Chris
Anzeige
AW: Aktualisierung
31.05.2022 22:23:10
Luschi
Hallo ChrisL,
ich benutze follgende M-Funktion für die Berecjmung der ISO-KW:

/*
siehe:
https://www.office-kompetenz.de/daten-in-power-query-fuer-pivot-auswertungen-mit-jahr-iso-jahr-und-kalenderwoche-vorbereiten/
Nachbau der Excel-Formel:
=KÜRZEN((Datum-WOCHENTAG(Datum;2)+11-("1/"&JAHR(Datum+4-WOCHENTAG(Datum;2))))/7)
let
fx_Kalenderwoche = (Datum as date)  as number =>
let
Wochentag = Date.DayOfWeek(Datum) + 1,
Teil1 = Number.From(Datum) - Wochentag + 11,
Teil2 = Number.From(#date(Date.Year(Date.From(Number.From(Datum) + 4 - Wochentag)),1,1)),
Teil3 = (Teil1 - Teil2) / 7,
Kuerzen = Teil3- Number.Mod(Teil3, 1)
in
Kuerzen
in
fx_Kalenderwoche
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Aktualisierung
01.06.2022 08:24:38
ChrisL
Hi Luschi
Danke. Hübsche, aufgeräumte PQ-Funktion. Etwas fürs Archiv.
n.b.
Wenn Ulf die KW pro Datensatz ebenfalls in PQ erzeugt, dann hat er eine einheitliche Methode für den Vergleich mit der aktuellen KW. Womöglich wäre das KW-System und der erste Wochentag dann gar nicht mehr so relevant. Hauptsache man einigt sich auf eine einheitliche Berechnungsmethode.
cu
Chris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige