Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1684to1688
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

Bereiche in Listen zusammen führen

Bereiche in Listen zusammen führen
01.04.2019 14:37:00
Fred

Hallo Excel-Profis,
also das ist nun wirklich für mich zu schwierig.
Ich habe Datensätze,- es geht um Wetten, die aufgelistet werden.
Nun kann ja im Spiel öfters eine Wette platziert werden und ich möchte die Zusammenfassung der einzelnen bets als Ergebnis.
Mit Access ist das ja in kurzer Zeit ratzfatz gemacht,- doch mit Excel ist wohl Programmierung gefragt.
Ich habe zur Verdeutlichung ein Arbeitsblatt beigefügt,- und eines, wie ich mir das Ergebnis vorstelle.
https://www.herber.de/bbs/user/128816.xlsb
Kann mir bitte jemand dabei helfen?
Mit freundlichen Gruß
Fred Neumann

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
PowerQuery Lösung
01.04.2019 14:57:56
ChrisL
Hi Fred
Lösung mit PQ, fast wie Access:
https://www.herber.de/bbs/user/128818.xlsx
let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"ID", Int64.Type}, {"erstellt", type datetime}, {"Tageszeit", type text}, {"Land", type text}, {"Wettbewerb", type text}, {"Bookie", type text}, {"Spiel", type text}, {"Strategie", type text}, {"Tipp", type text}, {"ArtFolge", type text}, {"Einsatz", type number}, {"Quote", type number}, {"Stand", type text}, {"Endstand", type text}, {"gew_verl", Int64.Type}, {"Steuer", Int64.Type}, {"SonderRechnung", type number}, {"Gewinn", type number}}),
#"Entfernte Spalten" = Table.RemoveColumns(#"Geänderter Typ",{"Strategie", "Tipp", "ArtFolge", "Quote", "Stand", "Endstand", "gew_verl", "Steuer", "SonderRechnung"}),
#"Gruppierte Zeilen" = Table.Group(#"Entfernte Spalten", {"ID", "erstellt", "Tageszeit", "Land", "Wettbewerb", "Bookie", "Spiel"}, {{"Einsätze", each List.Sum([Einsatz]), type number}, {"GewinnVerlust", each List.Sum([Gewinn]), type number}, {"bets", each Table.RowCount(_), type number}})
in
#"Gruppierte Zeilen"
cu
Chris
Anzeige
AW: PowerQuery Lösung
01.04.2019 19:29:04
Daniel
Hi Chris
sorry, aber was bringt denn dieser Code?
das würde mich jetzt eher davon abhalten PowerQuery zu verwenden, wenn ich mit sowas arbeiten muss.
Gruß Daniel
..dann lass es eben(Nachfolgegeneration !)
01.04.2019 19:34:31
robert
owT
AW: PowerQuery Lösung
01.04.2019 20:58:08
ChrisL
Hi Daniel
Ich fands interessant...
#"Gruppierte Zeilen" = Table.Group(#"Entfernte Spalten", {"ID", "erstellt", "Tageszeit", "Land", "Wettbewerb", "Bookie", "Spiel"}, {{"Einsätze", each List.Sum([Einsatz]), type number}, {"GewinnVerlust", each List.Sum([Gewinn]), type number}, {"bets", each Table.RowCount(_), type number}})
Aber wer nicht will, der muss nicht.
cu
Chris
AW: PowerQuery Lösung
01.04.2019 22:35:30
Daniel
ja, aber interessanter wären die Menüpunkte, die man anklicken muss um das zu bekommen.
das finde ich nur angeberisch, "seht her, ich kannst"
Gruß Daniel
Anzeige
AW: Bereiche in Listen zusammen führen
01.04.2019 15:05:21
Daniel
Alternativ mit Formeln:
https://www.herber.de/bbs/user/128819.xlsb
Wenn du mit PQ zurecht kommst, solltest du aber auf jeden Fall Chris Lösung bevorzugen!
Grüße
Daniel
AW: Bereiche in Listen zusammen führen
02.04.2019 10:57:20
Fred
Hallo Chris, Daniel,Robert, Daniel M. & Onur.
Vorweg Entschuldigung, dass ich mich erst viele Stunden später rückmelde,- mir ging es gestern nicht so gut.
Ich war heute Morgen fast schon etwas erschrocken, was meine Anfrage für eine kleine Welle auslöste :-)
Ja, mit PQ hatte ich überhaupt noch nichts am Hut. Frag mich, ob ich dies damals mit installiert hatte,- oder irgendwann entfernt habe. Das Ergebnis mit PQ von Chris war allerdings schon, was ich wollte. Die Formel-Lösung von Daniel fand ich allerdings ebenfalls interessant,- möchte ich allerdings nicht anwenden.
Der Hinweis von Daniel, das mein Anliegen ein Klassiker für Pivot-Tabellen ist, ist mir auch schon durch den Kopf gegangen,- zumal ich von youtube/user andreas thehos mir extra ein paar Clips runter gezogen habe. Ich werde die Pivot-Technik auf jedenfall ausprobieren.
Das VBA von Onur ist allerdings das, was ich mir sofort in meiner Mappe angelegt habe.
Click / Fertig / Genial
Ähnliches
Sub test2()
Dim LZ As Long
Worksheets("Spiele").Activate
With Sheets("Basis")
LZ = .Cells(.Rows.Count, 1).End(xlUp).Row
Union(.Range(.Cells(4, 1), .Cells(LZ, 1)), .Range(.Cells(4, 7), .Cells(LZ, 3))). _
_
Copy
End With
ActiveSheet.Cells(6, 3).PasteSpecial xlPasteValues
With Selection
.RemoveDuplicates 1, xlNo
.Sort Key1:=.Cells(1, 1), Order1:=xlAscending, Header:=xlGuess
End With
End Sub

hatte ich auch schon "gebastelt",- fehlte eigentlich nur noch die Summen der Einsätze, Gewinne und Anzahl der bets.
Allen ein ganz großes DANKE für die Aufmerksamkeit und Mühe!!
Vielleicht noch eine Frage,- die wohl meine "Null-Ahnung" unterstreicht.
Ich schrieb ja beginnend, das in Access solche gruppierten Auswertungen ratzfatz und ohne Programmierfähigkeit in den AbfrageEntwürfen umzusetzen sind. Einsicht und Bearbeitung in SQL hat man ebenfalls.
Gibt es eigentlich einen Generator, ein Tool oder sonst etwas, welches sql in vba übersetzen kann?
Sozusagen ein "Jesus-Tool" (Wasser in Wein etc.) ?
Gruß
Fred
Anzeige
AW: Bereiche in Listen zusammen führen
02.04.2019 11:55:33
Daniel
Hi
dein Code ist doch gar nicht mal so schlecht.
im Prinzip musst du da nur noch die entsprechenden Auswerteformeln mit SummeWenn und ZählenWenn hinzufügen.
Sub test2()
Dim LZ As Long
Worksheets("Spiele").Activate
With Sheets("Basis")
LZ = .Cells(.Rows.Count, 1).End(xlUp).Row
Union(.Range(.Cells(4, 1), .Cells(LZ, 1)), .Range(.Cells(4, 7), .Cells(LZ, 3))).Copy
End With
ActiveSheet.Cells(6, 3).PasteSpecial xlPasteValues
With Selection
.RemoveDuplicates 1, xlNo
.Sort Key1:=.Cells(1, 1), Order1:=xlAscending, Header:=xlGuess
With Selection.CurrentRegion
With .Columns(.Columns.Count + 1).Resize(, 3)
.Columns(1).FormulaR1C1 = "=SumIf(Basis!C1,RC3,Basis!C11)"
.Columns(2).FormulaR1C1 = "=SumIf(Basis!C1,RC3,Basis!C18)"
.Columns(3).FormulaR1C1 = "=CountIf(Basis!C1,RC3)"
.Formula = .Value
End With
End With
End With
End Sub
Gruß Daniel
Anzeige
AW: Bereiche in Listen zusammen führen
02.04.2019 13:47:47
ChrisL
Hi Fred
Zum Jesus-Tool :)
Eine automatische Übersetzung von SQL in VBA gibt es m.W. nicht.
Es gibt aber verschiedene Möglichkeiten, um SQL in Excel bzw. VBA zu verwenden z.B.
- ADODB
- In den Verbindungseigenschaften, Definition
- Im M-Script von PowerQuery ergänzen:
https://community.powerbi.com/t5/Desktop/Excel-Power-Query-How-to-use-Dynamic-Value-in-SQL-Statement/td-p/496618
cu
Chris
Klassische Auswertung mit Pivot-Tabelle
01.04.2019 19:27:20
Daniel
Hi
das kannst du hier relativ einfach mit der Pivottabelle realisieren.
über Einfügen - Tabellen - Pivottabelle aktivierst du den Assistenten zum erstellen der Pivottabelle.
im Assistenten am rechten Bildschirmrand stellst du dir dann die Auswertung zusammen.
hierzu siehst du dir aus dem oberen Bereich alle Spalten, deren Inhalt als Text angezeigt werden soll nach "Zeilen".
die Spalten, die ausgewertet werden sollen, ziehst du nach "Werte" (Summe sollte automatisch als Auswertetyp eingestellt sein, ansonsten kannst du hier über das Kontextmenü ändern)
zum schluss wählst du noch im Menü
- "Entwurf - Layout - Berichtslayout - Tabellenformat" und
- "Entwurf - Layout - Teilergebnisse - nicht anzeigen" aus.
dann sollte die erstellte Tabelle so aussehen wie von dir gewünscht.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige