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

Zahlenpaare markieren und löschen

Zahlenpaare markieren und löschen
03.08.2019 13:29:33
Stephan
Hallo Zusammen,
ich habe eine Datei mit über 40.000 Zeilen. In dieser sind positive und negative Werte, die zusammen 0 ergeben (Spalte 7). DIe Paare sind nicht untereinander, sondern irgendwo in der Tabelle. Diese Zeilen möchte ich nicht berücksichtigen. Nun würde ich gerne in zwei Schritten eine bereinigte Datei erhalten. In einem ersten Schritt sollen die Paare gefunden werden und in Spalte 9 ein X gesetzt werden. In einem zweiten Schritt soll die ganzen Zeile gelöscht werden. Das Löschen bekomme ich noch hin. Die Suche nach Paaren nicht, da bei der Zeilenanzahl zunächst die gesamte Tabelle durchgearbeitet werden muss und die Werte in einer Art Zwischenspeicher geparkt werden müssten. Zumindest ist so mein Verständnis.
Ich freue mich auf eure Rückmeldng.
Grüße
Stephan

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

Betreff
Datum
Anwender
Anzeige
AW: Zahlenpaare markieren und löschen
03.08.2019 13:48:26
Hajo_Zi
Hallo Stephan,
filtere die Tabelle in Spalte 7 nach 0 und lösche den sichtbvarenb Bereich. (Gehe zu)

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: Zahlenpaare markieren und löschen
03.08.2019 13:57:52
Stephan
Hallo Hajo,
danke für deine Antwort. Das wäre zu schön. Ich versuche es nochmal deutlicher: In Zeile 14 steht 345 und in Zeile 2456 steht -345. Ergibt in Summe 0. Jedoch finde ich das bei rund 40.000 Zeilen nicht. Auch filtern bringt mich da nicht weiter.
Liebe Grüße
Stephan
AW: Zahlenpaare markieren und löschen
03.08.2019 14:27:07
Rolf
Hallo Stephan,
zum Markieren:
=WENN(ZÄHLENWENN($G$1:$G$40000;G1)+ZÄHLENWENN($G$1:$G$40000;G1*-1)=2;"X";"")
in eine freie Spalte und runterziehen!
Gruß Rolf
Anzeige
..und wenn 12,-12,12,12,-12,-12,vorkommt ?
03.08.2019 15:29:59
robert
=WENN(ZÄHLENWENN($G$1:$G$40000;G1)+ZÄHLENWENN($G$1:$G$40000;G1*-1)=2;"X";"")
dann ist: =2; falsch...
Vor jedem weiteren Schritt: SORTIEREN!
03.08.2019 16:31:45
lupo1
Damit wird jede Art von Lösung einfacher und um Größenordnungen schneller. Du bist schon in einer Massendatenhaltung von 40000 Zeilen ...
AW: VBA
03.08.2019 16:36:12
Fennek

Sub T_1()
'Daten in Spalte A
'Spalte C frei
Ar = Columns(1).SpecialCells(2)
For i = 1 To UBound(Ar) - 1
If IsNumeric(Ar(i, 1)) Then
Z = Ar(i, 1)
For j = i + 1 To UBound(Ar)
If IsNumeric(Ar(j, 1)) Then
If Z = -1 * Ar(j, 1) Then
Ar(i, 1) = "x": Ar(j, 1) = "x"
Bo = True
Exit For
End If
End If
Next j
Bo = False
End If
Next i
Cells(1, 3).Resize(UBound(Ar)) = Ar
End Sub

Anzeige
auch hier würde SORTIEREN noch was bringen
03.08.2019 16:42:31
lupo1
... obwohl VBA und Variantarrays auch so schon schnell sind.
AW: auch hier würde SORTIEREN noch was bringen
04.08.2019 01:17:28
Günther
Moin,
ich denke, dass das für Power Query in Sachen Geschwindigkeit kaum einen Unterschied machen würde.
Muster-xlsx mit 2000 Ursprungs-Datensätzen auf Anfrage.
Gruß
Günther
Die Ansätze von Formel und VBA sind ...
04.08.2019 09:25:24
Formel
... reihenfolgeabhängig bzw. seriell - bei dieser Art Fragestellung. Dann bringt die Verwendung von mehreren Prozessorkernen keinen Gewinn an Zeit.
PQ müsste auch seriell abarbeiten. Vermutlich lässt sich ein Index anlegen, wie in SQL oder generell bei Datenbanken. Dann benötigt man wenigstens keinen Sort der Ausgangsdaten. Ob der Index automatisch erstellt wird, weiß ich nicht.
Anzeige
AW: VBA
04.08.2019 12:34:00
Stephan
Hallo Fennek,
wow, vielen Dank. Funktioniert einwandfrei. Kannst du das makro noch etwas kommentieren, sodass ich es anpassen kann, wenn die Werte in Spalte 8 sind und das X in Spalte 10 gesetzt werden soll? Das wäre super. Vielen Dank im Voraus und einen schönen Sonntag.
@all Das mit der Formel probiere ein einmal parallel. Auch vielen Dank an die Anderen.
Grüße
Stephan
AW: VBA mit Spalte 8 und 10
04.08.2019 13:16:49
Fennek

Sub T_1()
'Daten in Spalte 8
'Spalte 10 frei für das Ergebnis
Ar = Columns(8).SpecialCells(2) ' 8 ist die Spalte
For i = 1 To UBound(Ar) - 1
If IsNumeric(Ar(i, 1)) Then
Z = Ar(i, 1)
For j = i + 1 To UBound(Ar)
If IsNumeric(Ar(j, 1)) Then
If Z = -1 * Ar(j, 1) Then
Ar(i, 1) = "X": Ar(j, 1) = "X"
Bo = True
Exit For
End If
End If
Next j
Bo = False
End If
Next i
Cells(1, 10).Resize(UBound(Ar)) = Ar '10 ist die Spalte
End Sub
ungeprüft
Anzeige
AW: VBA mit Spalte 8 und 10
04.08.2019 19:53:14
Stephan
Hallo Fennek,
funktioniert. Herzlichen Dank!
Schönen Sonntag.
Grüße
Stephan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige