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

einfachste Möglichkeit

einfachste Möglichkeit
24.09.2019 20:29:03
Christian
Hallo,
Ich wollte mal fragen, ob es für das was ich hier mache, auch schnellere Wege gibt, a ich das doch recht häufig mache.
1. sortiere ich Tabelle1 Spalte A von A bis Z.
2. 100 der Zeilen beginnen mit Ordnungszahlen von 1. bis 100. diese behalte ich, alle andere lösche ich.
3. Ich ersetze ". " durch "~".
4. Ich trenne den Text in Spalten mit Trennzeichen "~".
5. Ich lösche die erste Spalte mit den Zahlen.
6. Ich wende die Glätten Formel auf die übrig gebliebene Spalte an, da alle Texte ein Leerzeichen am Ende haben.
7. Ich kopiere die 100 Zellen mit der Glätten Formel und füge die Werte am Ende von Tabelle 3 Spalte A ein.
8. Ich entferne in der kompletten Tabelle 3 Spalte A Duplikate.
9. ich sortiere Tabelle3 Spalte A von A bis Z.
Wie gesagt gibt es da praktikablere Lösungen?`
Oder anders die Fragestellung aufgebaut, wie mache ich am einfachsten aus Tabelle 1 die Tabelle 3, wobei wenn ich das ganze wiederhole, indem ich andere Texte in Tabelle 1 einfüge, die neuen Texte unter die alten in Tabelle3 geschrieben werden sollen und dann Duplikate entfernt werden sollen.
https://www.herber.de/bbs/user/132177.xlsx
Danke
Christian

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: einfachste Möglichkeit
24.09.2019 23:35:05
Piet
Hallo Christian
baue dir bitte in dein Beispiel, in ein normales Modul, diesen Code ein. Start ihn mit einem Button.
Ich hoffe das Makro erfüllt alle dein Wünsche. Würde mich freuen wenn es problemlos klappt.
mfg Piet
Option Explicit
Sub String_aufbereiten()
Dim AC As Variant, zx, lz As Integer
Worksheets("Tabelle1").Select
SpalteA_sortieren   'A sortieren
'Punkte Vorspann abschneiden
For lz = 1 To 100
If Len(Cells(1, 1)) 

AW: einfachste Möglichkeit
24.09.2019 23:43:39
Piet
Nachtrag
gestartet werden muss nur das erste Makro. Und achte bitte mal in Tabelle3 ob da die Überschrift nach unten sortiert wird? Dann muss ich das noch aendern.
mfg Piet
Anzeige
AW: einfachste Möglichkeit
25.09.2019 08:53:06
Christian
Hallo Piet,
erstmal danke für deine Mühe.
Prinzipiell funktioniert es, nur leider hat sich beim Testen mit einem anderen Text eine Schwachstelle aufgezeigt:
Dieser Text beinhaltete die Zeile
21-year-old media darling is known for her portrayal as Emma Ross on the fan favorite Disney's Jessie and Bunk'd, and made a name for herself on the network's long-running series.
Die Zeile wurde mit in Tabelle3 übernommen obwohl sie nicht dem eigentlichen vorgegebenen System mit den Ordnungszahlen entspricht.
Schaust du da bitte nochmal nach?
Ach so und noch was zweites, war zwar eine nette Idee mit einem Button, ich habe nur leider keine Ahnung wie man so einen erstellt.
Gruß
Christian
Anzeige
AW: einfachste Möglichkeit
25.09.2019 17:59:56
Piet
Nachtrag - Button Frage
Schau bitte mal in Youtube rein, da gibt es gute Anleitungen wie du das machen kannst. Auch andere gute Tipps zu Excel!
AW: einfachste Möglichkeit
25.09.2019 17:55:55
Piet
Hallo Christian
der Fehler in meinem Makro ist sehr einfach zu korrigieren, das kannst du selbst machen! Unten der Code Teil dazu.
Beim Befehl Instr() muss ein Punkt rein, anstatt " "! Das ist alles! - AC.Value = Trim(Mid(AC, InStr(AC, ".", 100))
mfg Piet
  For Each AC In Range("A1:A" & lz)
If IsNumeric(Left(AC, 1)) Then
AC.Value = Trim(Mid(AC, InStr(AC, " "), 100))
Else   'restliche Zeilen löschen
Cells(AC.Row, 1).Resize(lz, 1).Clear
End If
Next AC

Anzeige
AW: einfachste Möglichkeit
25.09.2019 19:39:33
Christian
Hallo Piet,
jetzt werden nur die Zahlen entfernt, die Punkte bleiben erhalten.
Gruß
Christian
AW: einfachste Möglichkeit
25.09.2019 19:40:46
Christian
Hallo Piet,
jetzt werden nur die Zahlen entfernt, die Punkte bleiben erhalten.
Gruß
Christian
AW: einfachste Möglichkeit
25.09.2019 00:48:57
Werner
Hallo Christian,
hier mal die "Aufbereitung" der Daten.
Die brauchst du dann nur noch ans Ende vun Tabelle 3 zu kopieren und dann Duplikate entfernen auf die Spalte anzuwenden.
Public Sub aaa()
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
.Rows(1).Insert
.Range("A1") = "Name"
.Range("B1:B" & .Cells(.Rows.Count, "A").End(xlUp).Row) _
.FormulaLocal = "=WENN(ISTZAHL(LINKS(A1;1)*1);ZEILE();0)"
.Range("B1:B" & .Cells(.Rows.Count, "A").End(xlUp).Row).Value = _
.Range("B1:B" & .Cells(.Rows.Count, "A").End(xlUp).Row).Value
.Columns("A:B").RemoveDuplicates Columns:=2, Header:=xlNo
.Columns("B").ClearContents
.Columns("A").Replace What:="*. ", Replacement:="", LookAt:=xlPart
.Range("A1:A" & .Cells(.Rows.Count, "A").End(xlUp).Row).Sort _
Key1:=.Range("A1"), Order1:=xlAscending, Header:=xlYes, orderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
.Columns("A").RemoveDuplicates Columns:=1, Header:=xlYes
.Rows(1).Delete
End With
End Sub
Gruß Werner
Anzeige
AW: einfachste Möglichkeit
25.09.2019 08:57:51
Christian
Hallo Werner,
prinzipiell funktioniert auch dieses Makro,
nur ich bin mit einem anderen Text genauso wie bei Petes Makro auf das Problem mit der Zeile
21-year-old media darling is known for her portrayal as Emma Ross on the fan favorite Disney's Jessie and Bunk'd, and made a name for herself on the network's long-running series.
gestoßen. Die eigentlich hätte gelöscht werden sollen, da sie nicht dem genannten System mit den Ordnungszahlen entspricht.
Gruß und schonmal Danke
Christian
AW: einfachste Möglichkeit
25.09.2019 08:00:18
Daniel
Hi
1. füge diese Formel in Spalte B ein und ziehe sie nach unten
=WENNFEHLER(WENN(FINDEN(".";A1)

2. kopiere die Spalte B als Wert nach Tabelle3
3. sortiere die Spalte
4. entferne die Duplikate
5. lösche das letzte Falsch
Wenn du dir die Formel irgendwo "griffbereit" ablegst, sollte das so etwas einfacher sein.
Gruß Daniel
Anzeige
AW: einfachste Möglichkeit
25.09.2019 08:45:27
Christian
Hallo Daniel,
auch wenn ich das Prinzip hinter deiner Formel verstehe, gibt sie bei mir anderes aus, als anscheinend von dir beabsichtigt.
2 Dinge: Wenn ich sie in meine Beispieldatei einfüge, gibt sie in keiner der Zeilen FALSCH aus, ich kann also nicht nachvollziehen, wo ein FALSCH zustande kommen soll, dass ich dann löschen soll.
Das andere, in B35, B309 und B347 gibt die Formel Punkte aus, das ar natürlich so nicht von mir gedacht.
Gruß und danke schonmal
Christian
AW: einfachste Möglichkeit
25.09.2019 09:41:31
Daniel
Hi
sorry, hatte das nachträglich noch mal geändert und statt FALSCH den Leerstring "" als Ausgabe für nicht benötigte Zeilen verwendet.
die die Zeilen, die du nicht benötigst, sollten leer bleiben.
ansonsten ersetze halt die "" durch FALSCH.
die drei aufeinander folgenden Punkte kannst du noch mit einer vorgeschalteten WENN-Abfrage ausschalten:
=Wenn(A1="...";Falsch;hier die weitere Formel)
Gruß Daniel
Anzeige
AW: einfachste Möglichkeit
25.09.2019 19:46:53
Christian
Hallo Daniel,
habe es noch etwas abgeändert in
=WENN(A1="…";"";WENNFEHLER(WENN(FINDEN(".";A1)
Aber so scheint es zu funktionieren.
Danke
Christian
AW: einfachste Möglichkeit
25.09.2019 14:07:40
Werner
Hallo Christian,
hier mit der Formel von Daniel (ohne die Erweiterung vom letzten Beitrag Daniels) weil in deinen Rohdaten Versionen vorkommen z.B. In... die von der Formel nicht erfasst werden.
Die Punkte eliminiere ich mit Replace.
Public Sub aaa()
Dim wsQ As Worksheet, wsZ As Worksheet
Dim loLetzte As Long, loLetzteNeu As Long
Set wsQ = ThisWorkbook.Worksheets("Tabelle1")
Set wsZ = ThisWorkbook.Worksheets("Tabelle3")
Application.ScreenUpdating = False
wsQ.Range("B1:B" & wsQ.Cells(wsQ.Rows.Count, "A").End(xlUp).Row).FormulaLocal = _
"=WENNFEHLER(WENN(FINDEN(""."";A1)
Gruß Werner
Anzeige
AW: einfachste Möglichkeit
25.09.2019 19:51:12
Christian
Hallo Werner,
soweit ich es überblicken kann, sieht auch das jetzt super aus.
Aber eine kleine Frage hätte ich noch, ich bin grad am überlegen, ob es für mich nicht sinnvoller ist, die Tabelle3 unsortiert zu lassen.
Reicht es einfach den Teil
Key1:=wsZ.Range("A1"), Order1:=xlAscending, Header:=xlNo, orderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
zu löschen, wenn ich nicht sortieren will oder muss ich da noch mehr machen?
Gruß
Christian
AW: einfachste Möglichkeit
26.09.2019 08:28:53
Piet
Hallo Christian
Sorry, dummer Flüchtigkeitsfehler. Jetzt sollte der Code auch wesentlich schneller laufen wie vorher.
AC.Value = Trim(Mid(AC, InStr(AC, ".") + 1, 100)) - Hatte die +1 im Code vergessen!!
mfg Piet
Sub String_aufbereiten()
Dim AC As Variant, zx, lz As Integer
Worksheets("Tabelle1").Select
SpalteA_sortieren   'A sortieren
'Punkte Vorspann abschneiden
For lz = 1 To 100
If Len(Cells(1, 1)) 

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige