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

Pivot ohne Berechnung

Pivot ohne Berechnung
20.04.2014 11:54:28
Peter
Hallo,
leider fiel mir kein besserer Titel für meine Frage ein.
Folgendes Problem, welches auch in der beiliegenden Tabelle zu finden ist:
Ich habe eine Liste, deren Auswertung normalerweise mit einer Pivotabelle durchgeführt wird. Allerdings scheitere ich an dem Problem, dass ich in einer Darstellung keine Werte errechnen möchte, sondern nur die Originaleinträge aus der Liste sehen möchte.
Hat jemand einen Tipp?
Und lässt sich dies auch per VBA lösen, das wäre sozusagen die Kirsche auf der Sahne.
Bevor ich nun lange schreibe, werft doch einfach einen Blick in die Exceldatei.
https://www.herber.de/bbs/user/90260.xlsx
Gruß,
Peter

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pivot ohne Berechnung
20.04.2014 14:10:06
fcs
Hallo Peter,
wenn du Zahlen statt Buchstaben für die Kennzeichnung der Zahlungsart verwendest, dann könntest du mit bedingter Formatierung arbeiten, um die Zahlen in der Pivotauswertung als Text darzustellen. Ist aber etwas mühselig in der Eingabe.Funktioniert aber nur in den neuesten Excelversionen.
Bei den benutzerdefinierten Zahlenformaten für die bedingten Formatierungen wird dann jeweils der Text statt der 0 oder # für Zahlen eingesetzt.
Beispiel: B;;; oder "B";;;
Alternativ wäre noch eine Auswertung per Formel möglich, wenn du die Kunden-Namen in der Spalte und die Datumswerte in der Zeile vorgeben kannst. Die Formeln sind jedoch Matrixformeln, die ggf. bei vielen Datenzeilen sehr rechenintensiv sind.
Beispiel für Zelle G2: =WENNFEHLER(INDEX($C$2:$C$13;VERGLEICH($F2&"|" & TEXT(G$1;"JJJJMMTT");$A$2:$A$13&"|"&TEXT($D$2:$D$13;"JJJJMMTT");0));"")
Formeleingabe mit Tastenkombination Strg+Shift+ENTER abschließen.
Gruß
Franz

Anzeige
AW: Pivot ohne Berechnung
21.04.2014 09:33:15
Peter
Danke für die Antwort. Die Idee mit den bedingten Formaten wäre eine interessante Lösung :-)

Kreuztabelle mit VBA
21.04.2014 11:09:38
Erich
Hi Peter,
dein Beispiel habe ich ein wenig verallgemeinert. In Zeile 8 erhält Müller XXXX als zweite Zahlungsart.
Und sortiert ist auch nichts mehr.
So sieht es dann aus:
 ABCDEFGHIJ
1KundeKnrArtDatum  16.04.201417.04.201419.04.201418.04.2014
2Schmitz B16.04.2014 SchmitzBLLB
3Müller R16.04.2014 MüllerRÜXXXXR
4Schulze V16.04.2014    Ü 
5Müller Ü17.04.2014 SchulzeVKKV
6Schmitz L17.04.2014      
7Schulze K17.04.2014      
8Müller XXXX19.04.2014      
9Müller R18.04.2014      
10Schmitz B18.04.2014      
11Schulze V18.04.2014      
12Müller Ü19.04.2014      
13Schmitz L19.04.2014      
14Schulze K19.04.2014      


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Das Ergebnis wird erzeugt durch

Option Explicit
Sub Umorg_Kreuztab()
Dim zz As Long, arQ, oDicDat As Object, nn As Long, oDicKun As Object
Dim oDicK As Object, arKyDat, arKy, arIt, strK As String, arrE() ' As String
Const strT As String = "|#|"
With Sheets("Tabelle1")
zz = .Cells(.Rows.Count, 1).End(xlUp).Row
arQ = .Cells(2, 1).Resize(zz - 1, 4)             ' Quelldaten
End With
Set oDicDat = CreateObject("Scripting.Dictionary")
For zz = 1 To UBound(arQ)
If Not oDicDat.Exists(arQ(zz, 4)) Then    ' Quellspalte 4 wird Spaltenüb. (Datum)
nn = nn + 1
oDicDat(arQ(zz, 4)) = nn
End If
Next zz
arKyDat = oDicDat.Keys
Set oDicKun = CreateObject("Scripting.Dictionary")
For zz = 1 To UBound(arQ)                    ' Quellspalte 1 wird Zeilenkopf (Kundennamen)
strK = arQ(zz, 1) & strT & arQ(zz, 4)
oDicKun(strK) = oDicKun(strK) + 1      ' Liste und Anz. der Kombinationen
Next zz
arKy = oDicKun.Keys
arIt = oDicKun.Items
Set oDicK = CreateObject("Scripting.Dictionary")
For zz = 0 To oDicKun.Count - 1
strK = Split(arKy(zz), strT)(0)           ' max. Anz/Kunde
If oDicK(strK) 
Die Knr wird nicht verwendet. Wäre sie nicht geschickter als der Kundenname?
Wie sollte für dich die Darstellung sein, wenn ein Kunde an einem Tag mehrere Zahlungsarten hat?
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Kreuztabelle mit VBA
21.04.2014 13:41:37
Peter
Moin Moin,
immer wieder toll, wie schnell es die passende Antwort gibt und was dann auch noch berücksichtigt wird, selbst wenn es der Fragesteller vergessen hat.
Danke dafür.
Zu deinen Anmerkungen/Fragen:
Ohne bezüglich der tatsächlichen Daten und deren Verwendung ins Detail zu gehen, können tatsächlich folgende Fälle vorkommen:
1. Kunde x mit Knr. 123 aber auch Kunde x mit Knr. 987
2. Kunde x mit Knr. 123 aber auch Kunde y mit Knr. 123
Dies hatte ich bei meiner Fragestellung vergessen zu erwähnen.
Was tatsächlich nicht vorkommen kann, ist der beschriebene Fall, dass ein Kunde an einem Tag zwei unterschiedliche Zahlungsarten verwendet.
Bitte nicht wundern, warum das so ist. Dafür müsste ich hier offen legen, worum es genau geht und da es sich teilweise um personenbezogene Daten handelt, würde ich das ungern tun. Nur soviel, es handelt sich NICHT um etwas gerwerbliches :-)
Es wäre also sinnvoll, die Spalte Knr. noch einzufügen. Die gewünschten Auswertungen könnte man dann später über die Mehrfachsortierung in der fertigen Kreuztabelle regeln.
Solltest du jetzt aber doch so neugierig sein, dass du die konkrete Anwendung wissen möchtest, so kann ich es dir gerne per Mail verraten.
Nochmals vielen Dank für deine Hilfe
Peter

Anzeige
AW: Kreuztabelle mit VBA
21.04.2014 14:13:51
Peter
Sorry, falsches Häkchen gesetzt. Natürlich war die Frage benatwortet!!!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige