Überprüfen, ob Werte in einer Tabelle in einer ungeraden Anzahl auftauchen
#1
Hallo Ihr Lieben,

ich bin neu im Forum und habe eine kleine Frage. Ich habe die SuFu bereits benutzt, jedoch leider nichts gefunden.

Ich habe eine Tabelle mit zwei Spalten und ~550 Werten. Nun würde ich gerne überprüfen, ob es Werte gibt, die in einer ungeraden Anzahl auftauchen.
Manuell danach zu suchen wäre ein zu großer Aufwand, da es um zufällige Zahlen von 0 bis 100.000 geht. 

Ich würde mich sehr darüber freuen, wenn mir jemand helfen könnte!  Huh
Antworten Top
#2
Hallo,

was genau meinst du denn? Kommen Werte mehrfach vor und du benötigst die Anzahl? Lad doch mal eine kleine Beispieltabelle (.xlsx - keine Bildchen) hoch. Trage händisch ein Wunschergebnis ein; dann wird's vll. klarer. https://www.clever-excel-forum.de/thread-326.html
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#3
Hallo,

ich habe mal eine veränderte, beispielhafte Tabelle im Anhang hochgeladen.
Mein Problem ist folgendes: die beiden Summen der Spalten, welche ganz unten erscheinen, sollen gleich sein. 

Sind sie das nicht, gibt es einen Fehler: entweder sind Werte rechts vorhanden und links nicht, oder andersherum


Das Problem könnte (viiiiiiel einfacher) behoben werden, wenn ich eine Funktion hätte, die mir hilft, herauszufinden, welche Werte in der Tabelle in einer ungeraden Anzahl auftauchen. 
Weiß ich, welche Werte in einer ungeraden Anzahl auftauchen, weil sie wie  z.B. nur links und nicht rechts auftauchen (z.B. 1 mal links, 0 mal rechts = Anzahl 1 oder 23 mal links, 22 rechts = Anzahl 55 ) (ungerade)
kann ich wie gesagt das Problem einfacher beheben.

Ich habe es mit der "identisch"-Funktion versucht, das hilft jedoch nicht weiter, da wenn z.B. 84,99 23x auftritt auch markiert (und ggf gelöscht) wird.

LG


Angehängte Dateien
.xlsx   Beispieltabelle.xlsx (Größe: 13,64 KB / Downloads: 19)
Antworten Top
#4
Moin

Mit PQ:

Code:
let
    Source = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Soll", type text}, {"Haben", type text}}),
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {}, "Attribut", "Wert"),
    #"Replaced Value" = Table.ReplaceValue(#"Unpivoted Columns","€","",Replacer.ReplaceText,{"Wert"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Replaced Value",{{"Wert", type number}}),
    #"Grouped Rows" = Table.Group(#"Changed Type1", {"Wert"}, {{"Anzahl", each Table.RowCount(_), Int64.Type}}),
    #"Inserted Is Odd" = Table.AddColumn(#"Grouped Rows", "Ungerade", each Number.IsOdd([Anzahl]), type logical),
    #"Filtered Rows" = Table.SelectRows(#"Inserted Is Odd", each ([Ungerade] = true)),
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Ungerade"})
in
    #"Removed Columns"


Vorher als Tabelle formatieren (STRG-T).
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

[-] Folgende(r) 1 Nutzer sagt Danke an shift-del für diesen Beitrag:
  • charaiminwarai
Antworten Top
#5
G6: =WAHL(SPALTE(A:B);
INDEX(SORTIEREN(--WECHSELN(INDEX(D6:E313;(SEQUENZ(616)+1)/2;2-REST(SEQUENZ(616);2));ZEICHEN(160)&"€";);;-1);SEQUENZ(308;;308;-1))*
(1-REST(SEQUENZ(308);2)*2);
G5:H312+F6:G313)


Deine Daten: Der niedrigste einmalige Wert ist 79,13 (also ohne Einzelgegenbuchung oder als Bestandteil einer Mehrfachbuchung mit Einzelgegenbuchung). Als zweiter Wert dann: 850. Das war es.

Die Eingabe der Formel funktioniert nur in XL365 mit Iteration 1000. In XLOnline müsste man die 2. Spalte selbst mit fortschreitendem Saldo versehen, da man in XLOnline keine Iteration selbst vereinbaren kann; sie wird aber beim Öffnen aus einer Vollversion 365 übernommen.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • charaiminwarai
Antworten Top
#6
(17.07.2021, 17:45)shift-del schrieb: Moin

Mit PQ:

Code:
let
    Source = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Soll", type text}, {"Haben", type text}}),
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {}, "Attribut", "Wert"),
    #"Replaced Value" = Table.ReplaceValue(#"Unpivoted Columns","€","",Replacer.ReplaceText,{"Wert"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Replaced Value",{{"Wert", type number}}),
    #"Grouped Rows" = Table.Group(#"Changed Type1", {"Wert"}, {{"Anzahl", each Table.RowCount(_), Int64.Type}}),
    #"Inserted Is Odd" = Table.AddColumn(#"Grouped Rows", "Ungerade", each Number.IsOdd([Anzahl]), type logical),
    #"Filtered Rows" = Table.SelectRows(#"Inserted Is Odd", each ([Ungerade] = true)),
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Ungerade"})
in
    #"Removed Columns"


Vorher als Tabelle formatieren (STRG-T).


Vielen Vielen Dank!! Das hilft mir schon einmal enorm weiter.

Leider habe ich gerade folgendes festgestellt: es könnte sein, dass der Wert "100" links 2x auftritt, und rechts 0x. Das passiert zwar nicht häufig, denke ich, ist jedoch denkbar - dann würde der Wert rechts fehlen und ich würde es mit dem Code nicht merken.

Gibt es vielleicht also noch eine Möglichkeit, nachdem ich mit diesem Code (von shift-del) quasi 95% der Fehler eliminieren konnte, zu überprüfen, welcher Wert links vorhanden ist und rechts noch fehlt? 
Mein Problem ist eigentlich folgendes: Ich muss sicherstellen, dass jeder Wert genauso häufig links vorkommt, wie rechts.

LG

Edit: 

(17.07.2021, 19:16)LCohen schrieb: G6: =WAHL(SPALTE(A:B);
INDEX(SORTIEREN(--WECHSELN(INDEX(D6:E313;(SEQUENZ(616)+1)/2;2-REST(SEQUENZ(616);2));ZEICHEN(160)&"€";);;-1);SEQUENZ(308;;308;-1))*
(1-REST(SEQUENZ(308);2)*2);
G5:H312+F6:G313)


Deine Daten: Der niedrigste einmalige Wert ist 79,13 (also ohne Einzelgegenbuchung oder als Bestandteil einer Mehrfachbuchung mit Einzelgegenbuchung). Als zweiter Wert dann: 850. Das war es.

Die Eingabe der Formel funktioniert nur in XL365 mit Iteration 1000. In XLOnline müsste man die 2. Spalte selbst mit fortschreitendem Saldo versehen, da man in XLOnline keine Iteration selbst vereinbaren kann; sie wird aber beim Öffnen aus einer Vollversion 365 übernommen.

Mit dieser Formel erhalte ich leider den Error #NAME? . Liegt es an einer falschen Excel Version? Ich arbeite mit Excel Version 1808, Microsoft Office Professional Plus 2019. LG
Antworten Top
#7
Hi,

kommst du damit besser klar?

Arbeitsblatt mit dem Namen 'Tabelle2'
DEFGHI
5SollHabenHS SollHS HabenWerte1Werte2
60,00 €0,00 €150300
715058,32 €x150
8150100,00 €x296,95 €
958,32 €850,00 €
102.000,00 €0,00 €
110,00 €2.000,00 €
120,01 €300x
130,00 €0,01 €
14100,00 €0,00 €
150,00 €0,00 €
160,00 €179,97 €
170,00 €160,00 €
180,00 €0,02 €
190,00 €1.999,99 €
201.999,99 €0,00 €
210,02 €0,00 €
22500,00 €0,00 €
230,00 €36,00 €
2450,00 €0,00 €
25101,00 €0,00 €
260,00 €50,00 €
270,00 €101,00 €
28296,95 €0,00 €x
29179,97 €0,00 €
300,00 €85,00 €

ZelleFormel
F6=WENN(ZÄHLENWENN($E$6:$E$313;D6)=0;"x";"")
G6=WENN(ZÄHLENWENN($D$6:$D$313;E6)=0;"x";"")
H6=WENNFEHLER(INDEX(D:D;AGGREGAT(15;6;ZEILE($D$6:$D$313)/($F$6:$F$313="x");ZEILE(A1)));"")
I6=WENNFEHLER(INDEX(E:E;AGGREGAT(15;6;ZEILE($D$6:$D$313)/($G$6:$G$313="x");ZEILE(A1)));"")
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Die Hilfsspalten kannst du ja bei Bedarf ausblenden; dann stören sie nicht.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#8
(17.07.2021, 20:14)WillWissen schrieb: Hi,

kommst du damit besser klar?

Arbeitsblatt mit dem Namen 'Tabelle2'
DEFGHI
5SollHabenHS SollHS HabenWerte1Werte2
60,00 €0,00 €150300
715058,32 €x150
8150100,00 €x296,95 €
958,32 €850,00 €
102.000,00 €0,00 €
110,00 €2.000,00 €
120,01 €300x
130,00 €0,01 €
14100,00 €0,00 €
150,00 €0,00 €
160,00 €179,97 €
170,00 €160,00 €
180,00 €0,02 €
190,00 €1.999,99 €
201.999,99 €0,00 €
210,02 €0,00 €
22500,00 €0,00 €
230,00 €36,00 €
2450,00 €0,00 €
25101,00 €0,00 €
260,00 €50,00 €
270,00 €101,00 €
28296,95 €0,00 €x
29179,97 €0,00 €
300,00 €85,00 €

ZelleFormel
F6=WENN(ZÄHLENWENN($E$6:$E$313;D6)=0;"x";"")
G6=WENN(ZÄHLENWENN($D$6:$D$313;E6)=0;"x";"")
H6=WENNFEHLER(INDEX(D:D;AGGREGAT(15;6;ZEILE($D$6:$D$313)/($F$6:$F$313="x");ZEILE(A1)));"")
I6=WENNFEHLER(INDEX(E:E;AGGREGAT(15;6;ZEILE($D$6:$D$313)/($G$6:$G$313="x");ZEILE(A1)));"")
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Die Hilfsspalten kannst du ja bei Bedarf ausblenden; dann stören sie nicht.

Danke für die Antwort. Leider verstehe ich um ehrlich zu sein nicht richtig den Ansatz, um mein Problem zu lösen. 
Der Code von shift-del war bereits hilfreich, jedoch klingt der Ansatz von LCohen auch sehr interessant, leider funktioniert diese Funktion bei mir nicht. Klappt Sie denn bei dir?
LG
Antworten Top
#9
Der Text in meinem Beitrag ist so kurz, dass Du dort die Antwort findest. Wir kennen hier übrigens kein 1808, sondern ..., 2016, 2019, 365.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Antworten Top
#10
(17.07.2021, 21:10)LCohen schrieb: Der Text in meinem Beitrag ist so kurz, dass Du dort die Antwort findest. Wir kennen hier übrigens kein 1808, sondern ..., 2016, 2019, 365.

Es tut mir sehr Leid, falls meine Antwort den Eindruck erweckte, ich hätte mich mit deinem Beitrag nicht vernünftig auseinandergesetzt. Ich bin davon ausgegangen, dass meine Version nicht "XLOnline" ist, und diese Anmerkung daher nicht auf mich zutrifft.

Zitat:Die Eingabe der Formel funktioniert nur in XL365 mit Iteration 1000. In XLOnline müsste man die 2. Spalte selbst mit fortschreitendem Saldo versehen, da man in XLOnline keine Iteration selbst vereinbaren kann; sie wird aber beim Öffnen aus einer Vollversion 365 übernommen.

Ich habe die Werte in der zweiten Spalte aufsteigend sortiert, jedoch erhalte ich immer noch die Fehlermeldung #NAME? . Was könnte ich evtl. noch falsch machen? Oder habe ich die Anmerkung falsch interpretiert?

LG

Edit: in den Optionen habe ich bereits die maximale Iterationsanzahl auf 32767 gesetzt - daran kann es also auch nicht liegen..
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste