Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 3-stellige Zahl innerhalb Text suchen

3-stellige Zahl innerhalb Text suchen
21.02.2006 09:46:23
Claus
Hallo,
habe über 10.000 Texte zu durchsuchen. Schön wäre folgende Formel:
Wenn in A1 3 oder mehr Ziffern hintereinander stehen, in B1 diese 3 Ziffern anzeigen, sonst "Nein".
Dann könnte ich bequem per Autofilter die verschiedenen 3-stelligen Zahlen (Volt-Angaben 110 V, 115 V, 230 V, 240 V etc.) analysieren und ggf. richtig stellen.
Grüßle Claus
Anzeige

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 3-stellige Zahl innerhalb Text suchen
21.02.2006 09:59:52
MichaV
Hallo,
1. steht hinter jeder von Dir gesuchten Zahl ein V ?
oder
2. stehen noch andere Zahlen in den Zellen?
Gruß- Micha
PS: Rückmeldung wäre nett.
AW: 3-stellige Zahl innerhalb Text suchen
21.02.2006 10:04:41
Claus
Hallo Micha,
vielen Dank schonmal, dass du dich der Sache annimmst.
Das V hinter der Zahl ist nicht zuverlässig. Manchmal ist noch eine Leerstelle dazwischen, es kann aber evtl. auch ganz fehlen. Vorerst reicht mir alle 3-stelligen Zahlen zu finden. Wenn dann noch Hunderte diese Bedingung erfüllen, müsste man evtl. auch noch das V nach der Zahl abfragen, ich hoffe aber, dass dann nur noch einige Zig übrig bleiben und es entsprechend übersichtlich wird.
Grüßle Claus
P.S.: Rückmeldung finde ich selbstverständlich, denn zumindest ein Dank für´s geholfen worden sollte M.M. nach drin sein.
Anzeige
AW: 3-stellige Zahl innerhalb Text suchen
21.02.2006 10:15:14
MichaV
Hallo Claus,
das ist für viele ebend nicht selbstverständlich.
Ich hatte an eine ohne VBA- Lösung gedacht, aber die wird auf jeden Fall langsamer arbeiten (bzw. wenn die Texte sehr lang sind, Dein System an den Rand des Abgrunds bringen ;o)) als u_'s Vorschlag. Wenn Dir der reicht, solls okay sein.
Das Leerzeichen ist übrigens unwichtig. Wenn das V aber ganz fehlen kann, ists doof.
Gruß- Micha
Anzeige
AW: 3-stellige Zahl innerhalb Text suchen
21.02.2006 10:23:54
Claus
Hallo Micha,
die Texte sind kurz, maximal 40 Stellen. (denn Sie kommen aus einem 40-stelligen SAP-Feld). Laufzeit dürfte nicht das Problem sein, auch kein Problem, wenn ich einige zusätzliche Spalten benötigen würde. Filtern, ausblenden etc. bin ich fit, nur VBA ist nicht mein Ding, hab´s halt noch nie gelernt. Aufzeichnen und einigermassen im Quellcode modifizieren kann ich, aber es fehlen halt die Grundlagen.
Von daher, wenn es für dich nicht zuuu viel Geschäft macht, würde ich mich über eine Lösung ohne VBA freuen.
Grüßle Claus
Anzeige
AW: 3-stellige Zahl innerhalb Text suchen
21.02.2006 10:29:36
MichaV
Hallo Claus,
lass Dir das mal trotzdem von u_ erklären. Ich setz mich in der Mittagspause ran und guck, ob ich was basteln kann. Dann kannst Du ja vergleichen, was Dir besser gefällt.
Gruß- Micha
AW: 3-stellige Zahl innerhalb Text suchen
21.02.2006 10:36:30
Claus
dem kann ich aber nur zustimmen, wenn du Spaß an der Sache hast...
AW: 3-stellige Zahl innerhalb Text suchen
21.02.2006 21:51:27
MichaV
Hallo,
ich kriegs nicht hin, sorry ;o)
Mußt also vorerst mit u_'s Lösung leben.
Gruß- Micha
Anzeige
AW: 3-stellige Zahl innerhalb Text suchen
21.02.2006 10:01:41
u_
Hallo,
in ein Modul:
Public

Function DreiZiffern(strTxt As String) As Integer
Dim i As Integer, strTmp As String
For i = 1 To Len(strTxt) - 2
strTmp = Mid(strTxt, i, 3)
If IsNumeric(strTmp) Then
DreiZiffern = strTmp * 1
Exit For
End If
Next i
End Function
Gruß
Geist ist geil!
Anzeige
AW: 3-stellige Zahl innerhalb Text suchen
21.02.2006 10:17:50
Claus
Hallo u_ (unbekannt ?)
vielen Dank für dein Modul. Geist ist geil, finde ich auch, doch leider finde ich den Geist nur in sehr beschränktem Umfang bei mir, will sagen:
Könntest du mir erklären, wo und wie ich diesen Quellcode eingeben muss, kann ich den dann als Funktion z. B. B1 = DreiZiffern(A1) einsetzen? Das wäre echt geil.
Sorry, dass ich mich so anstelle...
Grüßle Claus
Anzeige
AW: 3-stellige Zahl innerhalb Text suchen
21.02.2006 10:34:39
u_
Hallo,
VB-Editor öffnen (Alt+F11), Rechtsklick im linken Fenster (Projekt-Explorer) auf deine Mappe-Einfügen-Modul und den Code in das Modul kopieren. Anschließend kannst du, wie du schon vermutet hast, die Funktion benutzen (=DreiZiffern(A1))
Gruß
Geist ist geil!
AW: 3-stellige Zahl innerhalb Text suchen
21.02.2006 10:48:17
Claus
Hallo,
Klasse, das find ich prima, wie mir geholfen wird.
Habe jetzt das Modul eingegeben. Hierbei gibt es noch ein klitzekleines Problem: Wenn am Ende des 3-stelligen Ziffernblocks eine 0 steht, wird z.B. "24" anstatt "240" ausgegeben.
Ansonsten funktioniert es - vielen Dank hierfür.
Anzeige
AW: 3-stellige Zahl innerhalb Text suchen
21.02.2006 10:59:28
u_
Hallo,
bei mir steht da 240.



Gruß
Geist ist geil!
AW: 3-stellige Zahl innerhalb Text suchen
21.02.2006 11:15:37
Claus
Sehr merkwürdig.
Bei deinem Beispiel geht´s bei mir auch, bei diesem Beispiel tritt der Fehler auf:
1STD.LADEGERAET 240V
Erwarten würde ich hier 240, es kommt 24
Ich glaube, das ist ´ne harte Nuss?
Grüßle Claus
Anzeige
AW: 3-stellige Zahl innerhalb Text suchen
21.02.2006 11:58:39
u_
Hallo,
so geht's:

Function DreiZiffern(strTxt As String) As Integer
Dim i As Integer, strTmp As String
For i = 1 To Len(strTxt) - 2
strTmp = Mid(strTxt, i, 3)
If Len(Replace(strTmp, " ", "")) = Len(strTmp) And IsNumeric(strTmp) Then
DreiZiffern = strTmp * 1
Exit For
End If
Next i
End Function

Gruß
Geist ist geil!
Anzeige
AW: 3-stellige Zahl innerhalb Text suchen
21.02.2006 12:10:32
Claus
Suppi!! Jetzt passt es.
War der Fehler für dich nachvollziehbar?
Allerdings: Jetzt sehe ich, dass ich doch oft 3 Ziffern habe und aber später noch die Voltzahl, Beispiel:
BA 0665 BELT SANDER, 240 V
Wäre es denkbar, das Modul noch so auszubauen: Die 3-stellige Zahl ausgeben, der entweder im direkten Anschluß oder nach einer weiteren Leerstelle ein "V" folgt. ?
Nehme an, man müsste dann von hinten nach vorne durchsuchen und dann nach dem v (kann groß oder klein sein) nach Ziffern suchen...
Sicher recht aufwendig, oder?
Liebe Grüße
Claus
Anzeige
AW: 3-stellige Zahl innerhalb Text suchen
21.02.2006 12:52:45
u_
Hallo,
nicht aufwändig, man muss es nur wissen und ein bisschen denken.

Function DreiZiffern(strTxt As String) As Integer
Dim i As Integer, strTmp As String
strTxt = Replace(strTxt, " ", "")
For i = 1 To Len(strTxt) - 3
strTmp = Mid(strTxt, i, 4)
If IsNumeric(Left(strTmp, 3)) And UCase(Right(strTmp, 1)) = "V" Then
DreiZiffern = Left(strTmp, 3) * 1
Exit For
End If
Next i
End Function

Gruß
Geist ist geil!
Anzeige
AW: 3-stellige Zahl innerhalb Text suchen
21.02.2006 16:04:23
Claus
Sodele, hallole,
sorry, hatte zwischendurch keine Zeit.
Jetzt hab ich die neue Formel mit Berücksichtigung des V eingegeben, und:
Jippieee, es finktioniert tadellos. Vielen Dank!
Verstehe auch der Spur nach den Code, zuerst eliminierst du die Leerstellen, dann analysierst du alle enthaltenen 4-stelligen Teile, ob die linken 3 Stellen numerisch sind und gleichzeitig die rechteste Stelle = "V" ist. Ist diese Bedingung erfüllt, wandert´s in den Zwischenspeicher DreiZiffern usw.
Liebe Grüße
Claus
Anzeige
AW: 3-stellige Zahl innerhalb Text suchen
21.02.2006 19:52:36
Claus
Hallo nochmal,
jetzt hab ich noch ein Detailproblem: Manchmal kommt 3-stellige Zahl mit V hinterher, zwei mal oder mehrfach vor. Die Funktion gibt mir jetzt die erste Möglichkeit aus, ich hätte aber gerne die letzte, da meine Voltzahl meist am Ende steht.
Folgendes hab ich probiert:
For i = 1 To Len(strTxt) - 3
ersetzt durch
For i = Len(strTxt) - 3 To 1
So klappt es aber nicht, das wäre ja die Geschichte mit dem blinden Huhn und dem Korn gewesen...
Vielleicht könntest du ja nochmal ran gehen? Ich wäre dir sehr dankbar. Kann aber erst Morgen wieder weiterschaffen, muss jetzt in die Musikprobe.
Grüßle Claus
Anzeige
AW: 3-stellige Zahl innerhalb Text suchen
21.02.2006 21:53:03
MichaV
Hallo,
ungetestet:
For i = (Len(strTxt) - 3) To 1 Step -1
Gruß- Micha
PS: Rückmeldung wäre nett.
;
Anzeige
Anzeige

Infobox / Tutorial

3-stellige Zahl innerhalb Text suchen


Schritt-für-Schritt-Anleitung

Um eine 3-stellige Zahl in einem Text in Excel zu finden und anzuzeigen, kannst Du eine benutzerdefinierte Funktion in VBA erstellen. Folge diesen Schritten:

  1. VB-Editor öffnen: Drücke Alt + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Neues Modul erstellen: Klicke mit der rechten Maustaste im Projekt-Explorer auf deine Arbeitsmappe, wähle „Einfügen“ und dann „Modul“.

  3. Code eingeben: Kopiere den folgenden Code in das Modul:

    Function DreiZiffern(strTxt As String) As Integer
        Dim i As Integer, strTmp As String
        For i = 1 To Len(strTxt) - 2
            strTmp = Mid(strTxt, i, 3)
            If Len(Replace(strTmp, " ", "")) = Len(strTmp) And IsNumeric(strTmp) Then
                DreiZiffern = strTmp * 1
                Exit For
            End If
        Next i
    End Function
  4. Funktion verwenden: Schließe den VBA-Editor und gehe zurück zu Excel. Du kannst nun die Funktion wie folgt verwenden: =DreiZiffern(A1), wobei A1 die Zelle mit dem Text ist.


Häufige Fehler und Lösungen

  1. Falsches Ergebnis bei Zahlen mit Leerzeichen: Wenn die 3-stellige Zahl von Leerzeichen umgeben ist, stelle sicher, dass die Leerplätze im String entfernt werden, bevor die Funktion ausgeführt wird.

  2. Kein Ergebnis: Überprüfe, ob der Text tatsächlich eine 3-stellige Zahl enthält. Manchmal kann es zu Verwirrung kommen, wenn die Zahl am Ende eines Wortes steht, z.B. „240V“.

  3. Mehrfache Vorkommen: Die Funktion gibt nur die erste gefundene 3-stellige Zahl aus. Um das letzte Vorkommen zu finden, musst Du die Schleife rückwärts durchlaufen. Ändere den Code wie folgt:

    For i = Len(strTxt) - 2 To 1 Step -1

Alternative Methoden

Wenn Du keine VBA-Lösung verwenden möchtest, kannst Du auch die TEXT-Funktion in Kombination mit SUCHEN oder FINDEN verwenden, um 3-stellige Zahlen zu finden. Eine einfache Formel könnte so aussehen:


=Wenn(SUMME((ISTZAHL(WERT(MID(A1;SUCHEN({"000";"001";"002";"003";"004";"005";"006";"007";"008";"009";"010";"011";"012";"013";"014";"015";"016";"017";"018";"019";"020";"021";"022";"023";"024";"025";"026";"027";"028";"029";"030";"031";"032";"033";"034";"035";"036";"037";"038";"039";"040";"041";"042";"043";"044";"045";"046";"047";"048";"049";"050";"051";"052";"053";"054";"055";"056";"057";"058";"059";"060";"061";"062";"063";"064";"065";"066";"067";"068";"069";"070";"071";"072";"073";"074";"075";"076";"077";"078";"079";"080";"081";"082";"083";"084";"085";"086";"087";"088";"089";"090";"091";"092";"093";"094";"095";"096";"097";"098";"099";"100";"101";"102";"103";"104";"105";"106";"107";"108";"109";"110";"111";"112";"113";"114";"115";"116";"117";"118";"119";"120";"121";"122";"123";"124";"125";"126";"127";"128";"129";"130";"131";"132";"133";"134";"135";"136";"137";"138";"139";"140";"141";"142";"143";"144";"145";"146";"147";"148";"149";"150";"151";"152";"153";"154";"155";"156";"157";"158";"159";"160";"161";"162";"163";"164";"165";"166";"167";"168";"169";"170";"171";"172";"173";"174";"175";"176";"177";"178";"179";"180";"181";"182";"183";"184";"185";"186";"187";"188";"189";"190";"191";"192";"193";"194";"195";"196";"197";"198";"199";"200";"201";"202";"203";"204";"205";"206";"207";"208";"209";"210";"211";"212";"213";"214";"215";"216";"217";"218";"219";"220";"221";"222";"223";"224";"225";"226";"227";"228";"229";"230";"231";"232";"233";"234";"235";"236";"237";"238";"239";"240";"241";"242";"243";"244";"245";"246";"247";"248";"249";"250";"251";"252";"253";"254";"255";"256";"257";"258";"259";"260";"261";"262";"263";"264";"265";"266";"267";"268";"269";"270";"271";"272";"273";"274";"275";"276";"277";"278";"279";"280";"281";"282";"283";"284";"285";"286";"287";"288";"289";"290";"291";"292";"293";"294";"295";"296";"297";"298";"299";"300";"301";"302";"303";"304";"305";"306";"307";"308";"309";"310";"311";"312";"313";"314";"315";"316";"317";"318";"319";"320";"321";"322";"323";"324";"325";"326";"327";"328";"329";"330";"331";"332";"333";"334";"335";"336";"337";"338";"339";"340";"341";"342";"343";"344";"345";"346";"347";"348";"349";"350";"351";"352";"353";"354";"355";"356";"357";"358";"359";"360";"361";"362";"363";"364";"365";"366";"367";"368";"369";"370";"371";"372";"373";"374";"375";"376";"377";"378";"379";"380";"381";"382";"383";"384";"385";"386";"387";"388";"389";"390";"391";"392";"393";"394";"395";"396";"397";"398";"399";"400";"401";"402";"403";"404";"405";"406";"407";"408";"409";"410";"411";"412";"413";"414";"415";"416";"417";"418";"419";"420";"421";"422";"423";"424";"425";"426";"427";"428";"429";"430";"431";"432";"433";"434";"435";"436";"437";"438";"439";"440";"441";"442";"443";"444";"445";"446";"447";"448";"449";"450";"451";"452";"453";"454";"455";"456";"457";"458";"459";"460";"461";"462";"463";"464";"465";"466";"467";"468";"469";"470";"471";"472";"473";"474";"475";"476";"477";"478";"479";"480";"481";"482";"483";"484";"485";"486";"487";"488";"489";"490";"491";"492";"493";"494";"495";"496";"497";"498";"499";"500";"501";"502";"503";"504";"505";"506";"507";"508";"509";"510";"511";"512";"513";"514";"515";"516";"517";"518";"519";"520";"521";"522";"523";"524";"525";"526";"527";"528";"529";"530";"531";"532";"533";"534";"535";"536";"537";"538";"539";"540";"541";"542";"543";"544";"545";"546";"547";"548";"549";"550";"551";"552";"553";"554";"555";"556";"557";"558";"559";"560";"561";"562";"563";"564";"565";"566";"567";"568";"569";"570";"571";"572";"573";"574";"575";"576";"577";"578";"579";"580";"581";"582";"583";"584";"585";"586";"587";"588";"589";"590";"591";"592";"593";"594";"595";"596";"597";"598";"599";"600";"601";"602";"603";"604";"605";"606";"607";"608";"609";"610";"611";"612";"613";"614";"615";"616";"617";"618";"619";"620";"621";"622";"623";"624";"625";"626";"627";"628";"629";"630";"631";"632";"633";"634";"635";"636";"637";"638";"639";"640";"641";"642";"643";"644";"645";"646";"647";"648";"649";"650";"651";"652";"653";"654";"655";"656";"657";"658";"659";"660";"661";"662";"663";"664";"665";"666";"667";"668";"669";"670";"671";"672";"673";"674";"675";"676";"677";"678";"679";"680";"681";"682";"683";"684";"685";"686";"687";"688";"689";"690";"691";"692";"693";"694";"695";"696";"697";"698";"699";"700";"701";"702";"703";"704";"705";"706";"707";"708";"709";"710";"711";"712";"713";"714";"715";"716";"717";"718";"719";"720";"721";"722";"723";"724";"725";"726";"727";"728";"729";"730";"731";"732";"733";"734";"735";"736";"737";"738";"739";"740";"741";"742";"743";"744";"745";"746";"747";"748";"749";"750";"751";"752";"753";"754";"755";"756";"757";"758";"759";"760";"761";"762";"763";"764";"765";"766";"767";"768";"769";"770";"771";"772";"773";"774";"775";"776";"777";

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