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

Text-File fehlende Nummer wiedergeben

Text-File fehlende Nummer wiedergeben
02.04.2021 12:11:50
Andre´
Hallo alle zusammen,
ich habe folgenden TXT-File Aufbau https://www.herber.de/bbs/user/145272.txt
und möchte die fehlenden Nummern wiedergeben.
bei F1_1 fehlt
1300003
und bei F2_2 fehlen
2000001
2000002
2000004
2000005
2000006
2000007
2000008
2000009
es können Nummern auch doppelt vorkommen so wie bei F1_1 3 mal 1300002 und für F2_2 2 mal 2000010
Die fehlenden Nummern möchte ich aufgelistet in einem Tabellenblatt erhalten wie folgt.
Userbild
Fehlt keine Nummer so soll auch nichts wieder gegeben werden.
Ich hoffe mir kann jemand helfen.
Vielen Dank im Voraus!
MFG Andre

30
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Deine Excelversion wäre schon relevant ...
02.04.2021 12:35:42
neopa
Hallo Andre,
... denn in Abhängigkeiten der Version könnte/müsste es unterschiedliche Lösungsansätze geben. Außerdem wäre noch gut zu wissen wie viele Datensätze denn in etwa max auszuwerten sind.
Gruß Werner
.. , - ...

Ab Excel 2013 sollte es funktionieren OT
02.04.2021 13:53:40
Andre´

AW: beantwortet nur ein Teil meiner Fragen ...
02.04.2021 14:03:50
neopa
Hallo Andre,
...offen ist noch, wie viele Datensätze denn in etwa max auszuwerten sind?
Und vergessen hatte ich zu fragen, für max. (in etwa) wie viele verschiedene Textwerte ist die Auswertung zu erstellen und wie gRoß kann den in etwa die max. Differenz zwischen den jeweils kleinsten und größten Wert sein?
Gruß Werner
.. , - ...

Anzeige
AW: beantwortet nur ein Teil meiner Fragen ...
02.04.2021 14:13:41
Andre´
Hallo Werner,
max. Datensätze 10000
max. Textwerte = 2 (F1_1 und F1_2)
max. Differenz zwischen kleinsten/größten = 10
MFG Andre

AW: wenn dem so ist, ...
02.04.2021 15:11:12
neopa
Hallo Andre,
... wenn keine tausende Datenwerte fehlen und die Nummern für die beiden Textwerte sich wie im Beispiel nicht überschneiden, dann käme auch eine Formellösung in Frage. Nachfolgend mit je zwei Hilfszellen in D1:EE.
Hilfszellenformeln D1:D2 nach rechts und A2 nach rechts und dann weit genug nach unten kopieren:
 AB
1TextFortlNummer
2F1_11300000
3F1_11300001
4F1_11300002
5F1_11300004
6F2_22000000
7F1_11300002
8F1_11300008
9F2_22000010
10F1_11300005
11F1_11300006
12F2_22000003
13F1_11300007
14F2_22000010
15F1_11300012
16F2_22000014
17F1_11300015
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.02] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

 ABCDE
1F1_1F2_2 12999991999999
213000032000001 1615
313000092000002   
413000102000004   
513000112000005   
613000132000006   
713000142000007   
8 2000008   
9 2000009   
10 2000011   
11 2000012   
12 2000013   
13     

ZelleFormel
D1=AGGREGAT(15;6;Tabelle1!$B$2:$B$10000/(Tabelle1!$A$2:$A$10000=A$1);1)-1
A2=WENNFEHLER(AGGREGAT(15;6;D$1+ZEILE($A$1:INDEX($A:$A;D$2))/(ZÄHLENWENN(Tabelle1!$B$2:$B$10000;D$1+ZEILE(A$1:INDEX(A:A;D$2)))=0);ZEILE(A1));"")
D2=AGGREGAT(14;6;Tabelle1!$B$2:$B$10000/(Tabelle1!$A$2:$A$10000=A$1);1)-D1
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.02] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Gruß Werner
.. , - ...

Anzeige
AW: wenn dem so ist, ...
02.04.2021 15:42:57
Andre´
Hallo Werner,
vielen Dank für die Formel-Lösung, allerdings würde ich gern per Makro den Text-File verarbeiten.
Hast du auch dafür eine Lösung.
Vielen Dank für die Mühe.
MFG Andre

AW: VBA-Lösung gesucht, thread offen owT
02.04.2021 16:29:30
neopa
Gruß Werner
.. , - ...

AW: VBA-Lösung gesucht, thread offen owT
02.04.2021 16:41:34
Andre´

AW: VBA-Lösung gesucht, thread offen owT
02.04.2021 17:03:21
Günther
Mir fehlt jedes Verständnis dafür, dass solch wichtige Informationen (VBA-Lösung gefragt) nicht gleich im Eröffnungsbeitrag stehen. Da opfern mehrere Helfer ihre Freizeit für das Problem eines völlig Fremden und kriegen dann zu hören/lesen: "Ätsch, das war alles für den Papierkorb!" Motivation für Helfer sieht anders aus…
 
Ohne Gruß
Günther  |  mein Excel-Blog

Anzeige
Bei der Formellösung stimmt auch etwas nicht
02.04.2021 17:06:20
Andre´
Hallo Werner,
bei der Formellösung wird aber bei dem nachfolgenden Bsp. nicht die 4 als fehlend angezeigt bei F1_1 warum?
Userbild
Trotzdem wäre mi
MFG Andre

AW: ich hatte doch darauf hingewiesen...
02.04.2021 17:43:20
neopa
Hallo Andre,
... dass meine eingestellte Formellösung voraussetzt, dass: " ...die Nummern für die beiden Textwerte sich wie im Beispiel nicht überschneiden"
In Deinem neuen Beispiel ist das aber der Fall. Mit einer Erweiterung der Formel, könnte ich das auch noch abfangen. Es stellt sich nun aber zuvor die Frage, ob Du nun doch wieder eine Formellösung einsetzen willst oder doch nicht.
Gruß Werner
.. , - ...

Anzeige
AW: ich hatte doch darauf hingewiesen...
02.04.2021 18:04:05
Andre´
Hallo Werner,
ich denke, dass es sich mit einem Makro schwierig gestalten wird.
Deshalb würde ich nun den Text-File mit PQ einlesen und dann mit deiner Formel weiter machen.
Dann würde ich aber gleich die Werte für F1_1 in Spalte A und für F2_2 in Spalte B holen. siehe Bsp
Userbild
Wie sieht dann die Formel aus?
MFG Andre

AW: als Formellösung dafür ...
02.04.2021 18:58:30
neopa
Hallo Andre,
... reicht unter der Voraussetzung, dass die Nummern nicht siebenstellig werden folgende Formel: in F2:
=WENNFEHLER(AGGREGAT(15;6;ZEILE(INDEX(A:A;MIN(A:A)):INDEX(A:A;MAX(A:A)))/(ZÄHLENWENN(A$2:A$10000;ZEILE(INDEX(A:A;MIN(A:A)):INDEX(A:A;MAX(A:A))))=0);ZEILE(A1));"")
und diese nach rechts und weit genug nach unten ziehend kopieren.
Gruß Werner
.. , - ...

Anzeige
AW: als Formellösung dafür ...
02.04.2021 19:32:55
Andre´
Hallo Werner,
vielen Dank für die Lösung.
Wenn die Zahlen mehr als siebenstellig werden dann könnte ich deine erste Formellösung benutzen und würde dann in der Spalte A nur den Text F1_1 schreiben und in der Spalte B die Zahlen.... das gleiche dann für F2_2 in Spalte C und die Werte dafür in Spalte D.
Falls doch noch ein VBA Experte eine VBA Lösung hat, so kann er diese gern hier posten....ich lasse den Beitrag aber als beantwortet ;-)
MFG Andre

AW: Deine Excelversion wäre schon relevant ...
02.04.2021 13:56:39
Andre´
Hallo Werner,
ab Excel 2013 sollte es funktionieren.
Es können schon bis zu 10000 Zeilen enthalten sein.
MFG Andre

Anzeige
AW: dann mit VBA oder evtl. PQ, thread offen ...
02.04.2021 14:12:08
neopa
Hallo Andre,
... denn bei dieser auszuwertenden Datenmenge kommt eine von mir angedachte Formelauswertung nicht in Frage.
Da kommt nur eine VBA- oder evtl. auch eine PowerQuery-Lösung in Frage. Mit VBA beschäftige ich mich nicht und ob und wie es mit PQ möglich sein könnte, weiß ich momentan auch nicht gleich.
Gruß Werner
.. , - ...

Text-File fehlende Nummer wiedergeben-Makrolösung
03.04.2021 16:46:05
fcs
Hallo Andre,
hier eine Makrolösung.
Nach der Auswahl der Textdatei im Datei-Auswahl-Dialog legt das Makro in der aktiven Arbeitsmappe ein neues leeres Blatt an und trägt das Ergebnis ein.
Laufzeit des Makros: 2 bis 3 Sekunden (getestet mit 10000 Zeilen in der Textdatei).
Textdatei mit dem Makro:
https://www.herber.de/bbs/user/145288.txt
Das Makro kopierst du in ein allgemeines Modul einer Excel-Datei.
Das Makro ist unter neuesten Excel-Datei erstellt, sollte aber auch unter älteren Excel-Versionen funktionieren.
LG
Franz

Anzeige
AW: Text-File fehlende Nummer wiedergeben-Makrolösung
04.04.2021 19:54:28
Andre´
Hallo Franz,
PERFEKT, vielen Dank für die Makrolösung, funktioniert wie gewünscht ;-)
Wünsche noch schöne Ostern.
MFG Andre

Makrolösung...Fehler Index außerhalb....
04.04.2021 21:26:17
Andre´
Hallo Franz,
bei nur 4 Zeilen https://www.herber.de/bbs/user/145311.txt
Text;FortlNummer;Zahl1;Zahl2;Zeit
F1_1;1300000;21;2;01.04.2021 17:13:30
F1_1;1300003;3;55;01.04.2021 18:02:29
F1_1;1300002;4;455;01.04.2021 18:02:29
kommt Index außerhalb des gültigen Bereichs an folgender Stelle
Userbild
Hast du eine Tipp warum?
MFG Andre

Anzeige
Makrolösung...Fehler Index außerhalb....
04.04.2021 21:28:38
Andre´
Hallo Franz,
bei nur 4 Zeilen https://www.herber.de/bbs/user/145311.txt
Text;FortlNummer;Zahl1;Zahl2;Zeit
F1_1;1300000;21;2;01.04.2021 17:13:30
F1_1;1300003;3;55;01.04.2021 18:02:29
F1_1;1300002;4;455;01.04.2021 18:02:29
kommt Index außerhalb des gültigen Bereichs an folgender Stelle
Userbild
Hast du eine Tipp warum?
MFG Andre

AW: Makrolösung...Fehler Index außerhalb....
04.04.2021 22:19:19
fcs
Hallo Andre,
den Sonderfall, dass es in der Textdatei nur einen Text in Spalte A gibt, hatte ich beim Testen nicht auf dem Schirm.
Dadurch wurde das Ergebnis-Array falsch dimensioniert.
Du musst eine Zeile anpassen
'Ermitteln, wie viele Spalten und Zeilen das Ergebnis-Array mindestens haben muss
'Startwerte mit Werten aus Zeile 1 setzen
lngZei = 1
strText = arrData(lngZei, 1)
min_1 = arrData(lngZei, 2)
max_1 = arrData(lngZei, 2)
max_2 = 0
Spalten = 1
For lngZei = 2 To UBound(arrData, 1)
If strText  arrData(lngZei, 1)  Or lngZei = UBound(arrData, 1) Then ' _
angepasst 2021-04-05
LG
Franz

Anzeige
AW: Makrolösung...Fehler immer noch wenn
04.04.2021 22:41:09
Andre´
Hallo Franz,
bei dem Fall wie folgt
Text;FortlNummer;Zahl1;Zahl2;Zeit
F1_1;1;21;2;01.04.2021 17:13:30
F1_1;3;3;55;01.04.2021 18:02:29
ist leider der gleiche Fehler vorhanden :-(
Kannst du bitte nochmal prüfen wie das Makro umgeschrieben werden muss.
Besten Dank im Voraus!
MFG Andre

AW: Makrolösung...Fehler immer noch wenn
05.04.2021 02:20:10
fcs
Hallo Andre,
und ein weiterer Fall gelöst - wenn Textdatei nur 2 Zeilen hat.
Der Startwert für max_2 muss von 0 auf 1 geändert werden.
'Ermitteln, wie viele Spalten und Zeilen das Ergebnis-Array mindestens habem muss
'Startwerte mit Werten aus Zeile 1 setzen
lngZei = 1
strText = arrData(lngZei, 1)
min_1 = arrData(lngZei, 2)
max_1 = arrData(lngZei, 2)
max_2 = 1                                                  'angepasst 2021-04- _
05
LG
Franz

Makrolösung...immer noch Fehler
05.04.2021 09:51:24
Andre´
Hallo Franz,
jetzt geht es zwar bei:
Text;FortlNummer;Zahl1;Zahl2;Zeit
F2_1;1;3;55;01.04.2021 18:02:29
F2_1;3;3;55;01.04.2021 18:02:29
aber nicht wenn die Differenz größer ist als 1
Text;FortlNummer;Zahl1;Zahl2;Zeit
F2_1;1;3;55;01.04.2021 18:02:29
F2_1;4;3;55;01.04.2021 18:02:29
Ich würde mich sehr freuen, wenn du das Problem lösen könntest.
Nochmals vielen DANK im voraus!
MFG Andre

AW: Makrolösung...immer noch Fehler
05.04.2021 11:31:55
fcs
Hallo Chris,
und hier die nächste Anpassung.
Der Startwert für max_1 wird jetzt anders gesetzt.
LG
Franz
'Ermitteln, wie viele Spalten und Zeilen das Ergebnis-Array mindestens haben muss
'Startwerte mit Werten aus Zeile 1 setzen
lngZei = 1
strText = arrData(lngZei, 1)
min_1 = arrData(lngZei, 2)
max_1 = IIf(UBound(arrData, 1) > 1, arrData(lngZei + 1, 2), min_1) 'angepasst 2021-04- _
05
max_2 = 1                                                  'angepasst 2021-04-05
Spalten = 1


AW: Makrolösung...immer noch Fehler
05.04.2021 11:57:23
Andre´
Hallo Franz,
es ist doch schwieriger als angenommen.... leider bei folgenden Szenario immer noch der gleiche Fehler :-(
F2_1;1;3;55;01.04.2021 18:02:29
F2_1;3;3;55;01.04.2021 18:02:29
F2_1;5;3;55;01.04.2021 18:02:29
F2_1;9;3;55;01.04.2021 18:02:29
wobei nachfolgend kein Problem darstellt
F2_1;1;3;55;01.04.2021 18:02:29
F2_1;3;3;55;01.04.2021 18:02:29
F2_1;5;3;55;01.04.2021 18:02:29
MFG Andre

AW: Makrolösung...immer noch Fehler
06.04.2021 18:20:13
fcs
Hallo Chris,
hier ein neuer Anlauf, den Problem-Abschnitt des Makros zu korrigieren. Ich hab alle bisherigen Varianten auch geprüft. Es scheint jetzt rund zu laufen.
'Ermitteln, wie viele Spalten und Zeilen das Ergebnis-Array mindestens haben muss
'Startwerte mit Werten aus Zeile 1 setzen
zei_L = UBound(arrData, 1)                           'neu 2021-04-06
lngZei = 1
strText = arrData(lngZei, 1)
min_1 = arrData(lngZei, 2)
max_1 = min_1                                        'angepasst 2021-04-06
max_2 = 1                                            'angepasst 2021-04-06
Spalten = 1
For lngZei = 2 To zei_L
If lngZei = zei_L Then max_1 = arrData(lngZei, 2)     'neu 2021-04-06
If strText  arrData(lngZei, 1) Or lngZei = zei_L Then 'angepasst 2021-04-06
Spalten = Spalten + 1
LG
Franz

AW: Makrolösung...immer noch Fehler
06.04.2021 21:48:18
Andre´
Hallo Franz,
vielen lieben Dank, dass du dich nochmal dem Problem angenommen hast.
Was mich an deinem Code fasziniert ist, dass mehr als zwei Texte vorkommen können und diese auch richtig dargestellt werden.
so wie bei folgendem Bsp.
F1_1;5;3;55;01.04.2021 18:02:29
F1_1;7;3;55;01.04.2021 18:02:29
F2_1;1;3;55;01.04.2021 18:02:29
F2_1;13;3;55;01.04.2021 18:02:29
F3_1;11;3;55;01.04.2021 18:02:29
F3_1;11;3;55;01.04.2021 18:02:29
F3_1;14;3;55;01.04.2021 18:02:29
lasse ich die letzte Zeile weg wie folgt so geht es wieder nicht :-(
F1_1;5;3;55;01.04.2021 18:02:29
F1_1;7;3;55;01.04.2021 18:02:29
F2_1;1;3;55;01.04.2021 18:02:29
F2_1;13;3;55;01.04.2021 18:02:29
F3_1;11;3;55;01.04.2021 18:02:29
F3_1;11;3;55;01.04.2021 18:02:29
wobei wieder folgendes funktioniert
F1_1;5;3;55;01.04.2021 18:02:29
F1_1;7;3;55;01.04.2021 18:02:29
F2_1;1;3;55;01.04.2021 18:02:29
F2_1;12;3;55;01.04.2021 18:02:29
F3_1;11;3;55;01.04.2021 18:02:29
F3_1;11;3;55;01.04.2021 18:02:29
Meine Anforderung... 2 unterschiedliche Texte hast du aber erfüllt, wenn du aber noch den letzten Schliff realisieren möchtest, so würde ich mich sehr freuen.
Deshalb belasse ich den Thread bis Freitag als offen.
MFG Andre

AW: Makrolösung...immer noch Fehler
08.04.2021 20:53:25
fcs
Hallo Andre,
dieses Problem trat jetzt auf, wenn der letzte Text-Eintrag nur einmal vorkommt. Je nachdem wie groß der Wert in Spalte 2 ist, passt es noch oder eben nicht.
Ich habe die Prüfung angepasst für den Fall, dass der Zeilenzähler beim letzten Eintrag angekommen ist.
'Ermitteln, wie viele Spalten und Zeilen das Ergebnis-Array mindestens haben muss
'Startwerte mit Werten aus Zeile 1 setzen
zei_L = UBound(arrData, 1)                           'neu 2021-04-06
lngZei = 1
strText = arrData(lngZei, 1)
min_1 = arrData(lngZei, 2)
max_1 = min_1                                        'angepasst 2021-04-06
max_2 = 1                                            'angepasst 2021-04-06
Spalten = 1
For lngZei = 2 To zei_L
       If lngZei = zei_L And strText = arrData(lngZei, 1) Then max_1 = arrData(lngZei, 2) _
'angepasst 2021-04-08
If strText  arrData(lngZei, 1) Or lngZei = zei_L Then 'angepasst 2021-04-06

Ich habe diese Variante mit allen bisherigen Problemfällen getestet. Keine Fehlermeldungen.
LG
Franz

Endlich geschafft
08.04.2021 22:21:50
Andre´
Hallo Franz,
damit habe ich nicht mehr gerechnet.
Umso mehr freue ich mich, dass du dich nochmals dem Thema angenommen hast und DEINEN genialen Code fertig gestellt hast ;-)
VIELEN lieben DANK !!!!
MFG Andre

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige