Registriert seit: 29.08.2018
Version(en): 2016
31.03.2021, 12:16
(Dieser Beitrag wurde zuletzt bearbeitet: 31.03.2021, 12:18 von Excelsior940.)
Hallo liebe Excel Experten,
ich habe eine Pivot Tabelle, welche auf Daten einer Tabelle zugreift in die ich mittels Makro Daten einfüge.
Die eingefügten Daten stammen aus einer Tabelle in der Formeln (siehe weiter unten) je nach Bedingung Inhalte eintragen.
Beim Kopieren der Inhalte kopiere ich lediglich die Werte und nicht die Formeln mittels folgendem VBA Skript:
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Nach kopieren der Daten in die Pivot Quell Tabelle erkennt die Pivot aber auch in "leeren" Zellen Werte und schreibt mir in die PIVOT Tabelle eine 1.
Grund hierfür dürfte diese Formel sein:
=WENNFEHLER(WENN(SVERWEIS(A6;'Tabellenblatt'!B:J;6;FALSCH)=1;"X";"");J6)
Kann ich statt "" auch etwas anderes einfügen? Weil scheinbar erkennt die Pivot das "" ja als Zelleninhalt.
Wenn ich händisch in der Pivot Quell Tabelle die Zellen makiere und "ENTF" drücke wird in der Pivot keine 1 mehr angezeigt.
Die Pivot Werte werden nach der Wertefeldeinstellung "Anzahl" ausgewertet.
Ich kann euch leider nicht die Beispieldatei aufgrund der Inhalte anhängen. Sie nachzubauen würde mir zu viel Zeit kosten. Ich würde mich unheimlich freuen wenn ihr trotzdem helfen könnt.
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hallo,
Zitat:Sie nachzubauen würde mir zu viel Zeit kosten.
gehe ich recht in der Annahme, dass du Hilfe benötigst? Und gehe ich ebenfalls recht in der Annahme, dass wir nach deiner Lesart als kostenlose Helfer mehr Zeit haben?
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 29.08.2018
Version(en): 2016
31.03.2021, 13:28
(Dieser Beitrag wurde zuletzt bearbeitet: 31.03.2021, 14:05 von Excelsior940.)
Hallo Günther,
ich habe schon befürchtet, dass man diese Stelle falsch verstehen kann.
Selbstverständlich ist es aber nicht so zu verstehen, dass ich eure Zeit und Hilfe in Anspruch nehmen will und meine erste Prio ist so gut wie keine Zeit dafür aufwenden zu müssen.
Ich hatte schon angefangen die Datei nachzubauen und dabei gemerkt wie viel Zeit das in Anspruch nimmt und dachte, dass es ausreicht wenn ich die "Problemstellen" herauskopiere.
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
31.03.2021, 14:46
(Dieser Beitrag wurde zuletzt bearbeitet: 31.03.2021, 14:47 von RPP63.)
Moin!
Um das Phänomen nachzustellen, brauchte es bei mir nicht viel:
A1:B1 Überschriften
A2:A100 Daten (Plural von Datum im 1. Quartal 2021)
B2:B100 ="" (!)
Somit wird überall ein Leerstring ausgegeben.
In der Pivot wird der Leerstring korrekt als Inhalt errechnet.
Kopiere ich Spalte B und füge den Inhalt ein, sollte man meinen, dass nach Aktualisierung der Pivot überall als Anzahl 0 herauskommt.
Pustekuchen!
Dass immer noch etwas (der vbNullString) in den Zellen steht sieht man auch gut am Verhalten von Strg+Pfeiltasten.
Allerdings:
Eine Lösung außerhalb von VBA fällt mir nicht ein.
Mit VBA:
PHP-Code:
Sub NullStringWeg()
Dim Zelle As Range
For Each Zelle In Range("B2:B100")
If Zelle.Value = vbNullString Then
Zelle.Clear
End If
Next
End Sub
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
eventuell geht eine alte Naive. Damit
- bekommst Du in der Tabelle das X, wenn dort eine 1 steht. Du müsstest die Formel entsprechend umbauen
- bekommst Du in der Pivot eventuell ein passendes Ergebnis, wenn Du die Anzahl Zahlen nimmst
Tabelle:
Arbeitsblatt mit dem Namen 'Tabelle1' | | A | B | 1 | Wer | Was | 2 | ich | X | 3 | du | | 4 | er | |
|
Zelle | Format | Wert | B2 | "X";; | 1 | B3 | "X";; | | B4 | "X";; | |
| Zelle | Formel | B2 | =1 | B3 | ="" | B4 | ="" |
|
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016 |
Diese Tabelle wurde mit Tab2Html (v2.6.2) erstellt. ©Gerd alias Bamberg |
Pivot:
Arbeitsblatt mit dem Namen 'Tabelle1' |
| A | B |
11 | Zeilenbeschriftungen | Diskrete Anzahl von Was |
12 | du | 0 |
13 | | 0 |
14 | er | 0 |
15 | | 0 |
16 | ich | 1 |
17 | X | 1 |
18 | Gesamtergebnis | 1 |
Zelle | Format | Wert |
A12 | "X";; | du |
A13 | "X";; | |
A14 | "X";; | er |
A15 | "X";; | |
A16 | "X";; | ich |
A17 | "X";; | 1 |
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016 |
Diese Tabelle wurde mit Tab2Html (v2.6.2) erstellt. ©Gerd alias Bamberg |
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
31.03.2021, 17:51
(Dieser Beitrag wurde zuletzt bearbeitet: 31.03.2021, 17:55 von RPP63.)
Ich glaube, André, dass das Problem tiefgründiger ist.
Wie kommt man dem vbNullString auf die Schliche?
=CODE("") liefert #WERT!
=ISTLEER("") liefert FALSCH
=LÄNGE("") liefert 0
=ANZAHL2("") liefert 1
Kopieren und Wert einfügen ändert nichts daran.
(in den Zellen stand ="")
Dennoch "ist da was"!
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Ralf,
Zitat:Wie kommt man dem vbNullString auf die Schliche?
deswegen mach ich den Vorschlag mit "Anzahl Zahlen", sag dem "X" Schleich Dich und verkleide meine 1 als X
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 18.01.2021
Version(en): 365
31.03.2021, 18:00
(Dieser Beitrag wurde zuletzt bearbeitet: 31.03.2021, 18:03 von DeltaX.)
Das könnte man doch ganz einfach mit einem Calculate-Measure umgehen.
https://docs.microsoft.com/de-de/dax/blank-function-dax
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
31.03.2021, 18:06
(Dieser Beitrag wurde zuletzt bearbeitet: 31.03.2021, 18:19 von RPP63.)
Umgehen kann man viel, es kamen ja auch bereits einige Vorschläge.
Für mich (und offensichtlich auch für den TE) interessant ist die Tatsache, wie man mit einer Formel (nach copy: .PasteSpecial xlPasteValues) tatsächlich eine leere Zelle übergeben kann.
UPDATE:
Da es hier ja tatsächlich um eine Pivot geht, ist der Measure ein probates Mittel!
Sorry für die Engstirnigkeit!
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 18.01.2021
Version(en): 365
31.03.2021, 18:15
(Dieser Beitrag wurde zuletzt bearbeitet: 31.03.2021, 18:17 von DeltaX.)
Danke für die netten Worte
Dann lös das Problem, geht natürlich auch und die Löung ist offensichtlich.
Aber wird sicher Deinen Ansprüchen nicht genügen ...