Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Erkennen von Betragsformat innerhalb einer Textzelle

Erkennen von Betragsformat innerhalb einer Textzelle
04.07.2024 11:38:51
Alma27
Hallo zusammen,

ich weiß nicht, ob es geht, aber ich suche eine Möglichkeit herauszufinden, ob in einer Zelle, die als Text definiert wurde und auch entsprechend Text, aber auch Zahlen enthalten kann, ein Betrag steht.

Beispiele:

1. Zelle: Das Haus kostet 0,00
2. Zelle: 1.000,93 € wurden gezahlt
3. Zelle Für einen Unkostenbeitrag von 100,00 werden sie regelmäßig mit Werbung überschüttet
4. Zelle 5 Mal wurden wir schon angeschrieben
5. Zelle in nicht weniger als 5 Tagen hat es mehr als 150 l pro m² geschüttet

Ich hätte gerne, dass ich die ersten 3 Zellen markiert oder herausgefiltert bekomme, die Zellen 4 und 5 aber eben nicht. Dabei sind die Beträge, wenn welche vorhanden sind, unterschiedlich hoch und haben auch nicht immer ein Währungskürzel.

Hab eine Datei mit über 15.000 Zeilen vorliegen, die ich entsprechend filtern muss. Wenn eine solche Prüfung geht, würde mir das massiv die Arbeit erleichtern.

Hat jemand eine Idee?

Viele Grüße
Alma27
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: like "#,##"
04.07.2024 11:50:05
Fennek
Hallo,

VBA bieten mit "like" auch die Suche nach einem Muster "Zahl,Zahl Zahl".

Das findet alle Beträge mit 2-Nachkommastellen.


mfg
AW: like "#,##"
04.07.2024 12:22:02
Alma27
Hallo Onur,
hallo Fennek,

vielen Dank, dass Ihr euch mein Problem schon in so kurzer Zeit angesehen habt.

@ Onur: eine Formel wäre mir definitiv lieber, ist aber leider nicht anwendbar, da ich leider ganz normalen Text inkl. Kommata habe, der immer mal wieder auch Beträge beinhaltet.

@ Fennek:
auf die Idee mit VBA bin ich noch gar nicht gekommen. Muss mal schauen, ob ich da was hinbekomme, dass er mir in der Zeile, in der er den Betrag gefunden hat, ein Zeichen setzt. Muss ich denn nach like "#,##" oder eher nach #.## suchen? Ich meine im Hinterkopf zu haben, dass VBA trotz deutscher Excel-Variante trotzdem engl. Schreibweise verlangt. Ist das korrekt?

Viele Grüße
Alma27
Anzeige
AW: Erkennen von Betragsformat innerhalb einer Textzelle
04.07.2024 12:14:00
daniel
Hi
also Formel vielleicht:

=LET(x;WECHSELN(A1;", ";"");ISTZAHL(--TEIL(x;FINDEN(",";x)-1;4)))

das erste Wechseln ist dazu da, Kommas als Satzzeichen zu löschen, da das FINDEN immer nur das erste Komma findet und somit ein falsches Ergebnis liefert, wenn vor dem Betrag noch ein Komma als Satzzeichen steht.
Funktioniert aber auch nur, wenn nach dem Komma auch auch das Leerzeichen steht.

oder so:

=LET(x;TEXTTEILEN(WECHSELN(A1;"€";" ");" ");ODER(ISTZAHL(--x)*(LINKS(RECHTS(x;3);1)=",")))

ich ersetze hier das Währungszeichen durch ein Leerzeichen, weil sonst der Betrag nicht erkannt wird, wenn das währungszeichen direkt nach der Zahl folgt (ohne Leerzeichen)

Gruß Daniel
Anzeige
AW: Erkennen von Betragsformat innerhalb einer Textzelle
04.07.2024 12:27:12
GerdL
Hallo Alma
Sub Unit()

Dim z As Long
For z = 1 To 5
If Cells(z, "A") Like "*#,##*" Then
Cells(z, "B") = "X"
End If
Next
End Sub

Gruß Gerd
AW: Erkennen von Betragsformat innerhalb einer Textzelle
04.07.2024 12:40:02
Alma27
Hallo Daniel,
hallo GerdL,

auch euch vielen Dank für Eure Rückmeldungen.

@ Daniel: Beide Formeln funktionieren, wobei die 2. Formel aber nur bestimmte Zellen findet. Hab noch nicht herausgefunden, welche. Ist aber auch nicht schlimm. Mit der ersten Formel konnte ich schon ein hervorragendes Ergebnis erzielen.

@ GerdL: Vielen Dank für den Code. Hab ihn direkt ausprobiert. Funktioniert ebenfalls hervorragend und hat das Ergebnis der 1.Formel von Daniel bestätigt.

Ihr ahnt gar nicht, wie viel Zeit mir das spart.

Noch mal vielen Dank an alle - und schön, dass es dieses Forum mit so vielen Excel-Spezialisten gibt :o)

Viele Grüße
Alma27
Anzeige
AW: Erkennen von Betragsformat innerhalb einer Textzelle
04.07.2024 13:11:32
daniel
meine zweite Formel teilt den Text am Leerzeichen in einzelne Wörter und prüft dann, ob die Wörter eine Zahl sind und ob das Komma an der dritten Stelle von rechts steht.
Es werden daher nur Beträge erkannt, bei denen vor und nach den Zahlen ein Leerzeichen steht.

das beste Ergebnis erziehlst du warscheinlich, wenn du VBA und Formel kombinierst.

Erstelle dir per VBA diese Funktion, die du auch in einer Formel in einer Zelle verwenden kannst:

Function EnthältBetrag(txt as string) as boolean

EnthältBetrag = txt like "*#,##*"
End Function


in der Zelle dann die Formel
=EnthältBetrag(A1)



das sollte eigentlich alles erkennen.
die Frage wäre allerdings, soll ein Wert wie "0,123" auch als Betrag gewertet werden oder nur eine Zahl mit genau zwei Nachkommastellen?
Wenn ja, dann erweitere die Function so:
Function EnthältBetrag(txt As String) As Boolean

EnthältBetrag = txt Like "*#,##*" And Not txt Like "*#,###*"
End Function

hier würden allerdings Beträge nicht erkannt, die zusammen mit einem Wert mit drei oder mehr Nachkommastellen in der Zelle stehen


Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige