Microsoft Excel

Herbers Excel/VBA-Archiv

Textteile suchen in Excel oder VBA

Betrifft: Textteile suchen in Excel oder VBA von: Franz M.
Geschrieben am: 08.10.2020 18:07:27

Hallo liebe Gemeinde,

Ich habe ein Problem mit VBA bzw. Excel Grundlagen... Ich hoffe jemand widmet sich dem Problem...

Ich bin noch Schüler (10. Klasse) und mache in meiner Freizeit ein wenig python, also keine Ahnung von Excel oder VBA.

Ich möchte in einer sehr schlecht formatierten Datei die Anzahl zweier Werte a und b bestimmen, jedoch müssen diese stets zusamme vorkommen z.B.: „a1 b15 kommt 3x vor“.Es liegen Listen (=Spalten) von a und b vor, also a1, a2, a3 und b1, b2, b3 usw. vor. Dabei handelt es sich um Strings. Durch die schlechte Formatierung sind manchmal Zellen vermischt worden, Bsp:

A1 = a4 B1 = b17

A2 = Johannesa5 B2 = b13


Für a gibt es 894 Werte, für b 95. Ich hatte die Idee eine Liste aller Werte a b auszugeben (VBA) und diese dann (wahrscheinlich auch per VBA) zu „suchen“. Die Liste a b umfasst daher 84.930 Werte 😬.

Ich hoffe Foren sind noch aktuell ;). Ich freue mich über eine Rückmeldung!

Grüße,

Franz

Betrifft: Beispieldatei
von: ChrisL
Geschrieben am: 08.10.2020 19:27:37

Hi Franz

Ein klein wenig hört es sich nach der Formel =ZÄHLENWENN() an, aber so richtig blicke ich nicht durch.

Wenn du eine kleine gekürzte Beispieldatei (*.xlsx) mit der Ausgangslage und dem gewünschtem Resultat hoch laden würdest, hilft dir das Forum sicherlich gerne.

cu
Chris

Betrifft: AW: Beispieldatei
von: Franz M.
Geschrieben am: 09.10.2020 08:22:34

Hi Chris,

Erstmal Vielen Dank für deine Nachricht.
Wahrscheinlich habe ich zu viel Blödsinn erzählt ;)...

https://www.herber.de/bbs/user/140747.xlsx

Die Namen sind irrelevant, die a b's gehen dann weiter mit a2 b2, a2 b3 usw.

Ich denke ZÄHLENWENN() funktioniert nicht, da eben so etwas wie "Johannesa2" oder so passieren kann, also müsste man davor den string mit LINKS() oder so trennen.
Ein weiterer Ansatz wäre mit VBA alle Zellen durch zu gehen und erst mit den a's und danach mit den b's abzuchecken (mit FINDEN(), das Problem ist ich weiß nicht wie man FINDEN() in VBA benutzt). Wenn Zelleninhalt != var b dann Lösche. Oder so.

Also im Allgemeinen suche ich ein Script oder eine Excelfunktionskette, welche strings suchen kann, jedoch mit Zählvariable, da im eigentlichen Projekt die Zahlen über Integer hianus gehen.

Grüße,
Franz

Betrifft: AW: Beispieldatei
von: ChrisL
Geschrieben am: 09.10.2020 14:31:13

Hi Franz

Ja ZÄHLENWENN ist nix, da du Teilstrings suchst und nicht ganze Zelleninhalte.

Soweit ich verstehe:
- Spalte A ist irrelevant
- Spalte B + C sind die Inputdaten
- Spalte D-F ist dein gewünschtes Resulat

Leider ist mir unklar, wie sich dieses Resultat ergibt.

a1 kommt 3x vor, erscheint aber in Spalte D nur einmal. Also willst du Duplikate ignorieren?
a3 kommt gar nicht vor, erscheint aber trotzdem in Spalte D?
Die Logik von Spalte F verstehe ich überhaupt nicht.

Sind a und b nur Beispiele und es könnten auch ganz andere Suchbegriffe sein (z.B. Emila's). Und wie viele solcher Suchbegriffe gibt es.

Vielleicht wird es klarer, wenn du etwas konkreter erklärst wofür du die Auswertung brauchst und wie die Inputdaten zustande kommen. Für Zelle B5 wäre es vorteilhafter, sofern möglich, wenn diese Inkonsistenz gar nicht erst zu Stande käme, als nachträglich auszukorrigieren.

Im Anhang übrigens mal die a's und b's aus beiden Spalten extrahiert (Ergebnis in Reiter 2+3).
https://www.herber.de/bbs/user/140766.xlsx
(es handelt sich um eine Power-Query Lösung)

cu
Chris

Betrifft: präzise Problem / Fragestellung
von: Franz M.
Geschrieben am: 09.10.2020 16:41:21

Hi Chris,

Also: das Original ist eine .PDF, die leider ziemlich schlecht in Excel umgewandelt wurde. Meine Aufgabe ist es, trotz schlechter Formatierung, die benötigten Werte (und zwar a b) statistisch darzustellen.
(Die Automatisierung soll langfristig sein, also es gibt im regelmäßigen Zeitzyklen eine neue schlecht formatierte Datei.)
Da es jedoch Unmengen von Paaren (bei 894 verschiedenen a's und 95 verschiedenen b's) gibt, welche ich bestimmen müsste, habe ich einfach ALLE Paare (=Möglichkeiten) ausgegeben, welche nun von oben nach unten abgearbeitet werden sollen.
(Auch wenn mehr als 75% davon nicht vorhanden sind)
Die eigentliche Lösung wäre nun eine Formel, welche eben einen Zelleninhalt dieser Liste mit den PDF-Zellen vergleicht und zum Schluss die Anzahl der Kombination (a & “ “ & b) ausgibt. Das Problem ist, die Werte a und b könnten in jeder Spalte und auch mit anderen Werten vermischt vorkommen.
Und dafür suche ich eine Zauberformel (auch VBA möglich)

Grüße,
Franz.

Betrifft: ich verstehe leider immer noch nicht...
von: ChrisL
Geschrieben am: 09.10.2020 18:05:25

Hi

Zu PDF ein Hinweis: Hast du es mal mit einem der Online Converter probiert. Evtl. erreichst du so ein besseres Resultat als wenn du es mit Copy/Paste versuchst.

Mit "konkret" meinte ich es mehr bildlich z.B. Fussball Mannschaften, Kategorie A/B, Team 1, 2, 3. Ich möchte z.B. wissen, welche Teams noch nie gegeneinander gespielt haben.
Es war ein Versuch, weil ich dachte so könnte ich deine Absichten vielleicht besser verstehen.


Da es jedoch Unmengen von Paaren (bei 894 verschiedenen a's und 95 verschiedenen b's) gibt, welche ich bestimmen müsste, habe ich einfach ALLE Paare (=Möglichkeiten) ausgegeben, welche nun von oben nach unten abgearbeitet werden sollen.
Warum ist in der Beispieldatei z.B. a5+b2 keine Kombinationsmöglichkeit?

(Auch wenn mehr als 75% davon nicht vorhanden sind)
Soll wahrscheinlich als Erklärung dienen, warum z.B. a3 aufgeführt ist, obwohl es gar nicht vorhanden ist. Aber warum machen wir uns dann die Mühe, die Inputdaten (Spalten B:C) zu strukturieren. So gesehen könnte man ja gleich direkt alle Kombinationen 894x95 ermitteln.


Kann sein, dass es an mir liegt, aber ich blicke weiterhin nicht durch.

cu
Chris

Betrifft: AW: ich verstehe leider immer noch nicht...
von: Franz M.
Geschrieben am: 09.10.2020 19:22:36

Hi Chris,

Gut, das mit der PDF liegt nun mal nicht in meiner Hand...

Um genauer zu werden:
Es geht um die Abrechnung bestimmter Leute. Diese haben pro Auftrag eine 2 Werte ( ich habe selbst keine Ahnung was die nun genau heißen...). Für diese zwei Arten von Werten soll ich paarweise die Anzahl bestimmen.

Grüße,
Franz.

Betrifft: AW: ich verstehe leider immer noch nicht...
von: Franz M.
Geschrieben am: 09.10.2020 19:22:37

Hi Chris,

Gut, das mit der PDF liegt nun mal nicht in meiner Hand...

Um genauer zu werden:
Es geht um die Abrechnung bestimmter Leute. Diese haben pro Auftrag eine 2 Werte ( ich habe selbst keine Ahnung was die nun genau heißen...). Für diese zwei Arten von Werten soll ich paarweise die Anzahl bestimmen.

Grüße,
Franz.

Betrifft: AW: ich verstehe leider immer noch nicht...
von: ChrisL
Geschrieben am: 10.10.2020 23:34:34

Hi Franz

Ich meinte Convert PDF to Excel/Word, aber egal.

Ein letzter Versuch:

https://www.herber.de/bbs/user/140747.xlsx
Kannst du bitte noch einmal deine Beispieldatei überprüfen. Stimmt diese?

Soweit ich verstehe:
- Spalte A ist irrelevant
- Spalte B + C sind die Inputdaten
- Spalte D-F ist dein gewünschtes Resulat
Stimmt diese Annahme?

Kann B+C evtl. ebenfalls ignoriert werden, weil du baust ja in D+E unabhängig von B+C ein Ergebnis auf?
Andernfalls, warum stehen in D+E Werte, die es in B+C nicht gibt? Warum ist in der Beispieldatei z.B. a5+b2 keine Kombinationsmöglichkeit?

cu
Chris

Betrifft: AW: ich verstehe leider immer noch nicht...
von: Karl
Geschrieben am: 12.10.2020 10:16:30

Hi Chris

1.)
Ich weiß, aber das Converten muss ich einfach als gegeben ansehen :/, aber Danke für deinen Rat.

2.)
Spalte D und E sind eigentlich auf einem anderen Tabellenblatt. Sie sind nur die Begriffe, die ich suchen muss. In Spalte F sind dann die Begriffe, die ich zählen muss.

D bis F stellen sozusagen nur die "Möglichkeiten" der Werte dar, die B + C annehmen könnten. Daher kommen nicht alle Möglichkeiten in B + C vor.

Ich muss also zuerst den Inhalt in B + C mit den Spalten D und E vergleichen, wenn Inhalt vorhanden ist in einer anderen Spalte (z.B. Z) ausgeben und die Daten in dieser (erneut mit allen Möglichkeiten [F] zählen.

Sorry, dass das alles so umständlich und schlecht formuliert ist!

Danke das du dich diesem Problem gewidmet hast!

Grüße,
Franz.