Excel Formel
#1
Hallo ihr lieben,

erst einmal Danke für die Aufnahme.
Ich bin leider kein Excel-Profi wie ihr, aber leider muss ich für die Arbeit etwas machen und weiß nicht weiter. Idea

Gibt es eine Formel, die mir filtert, dass zb. in einer Spalte nur Nummern angezeigt werden die 8-stellig sind?
Beispiel: 12345678, aber nicht 1234 5678 oder irgendwie anders dargestellt.
Oder eben auch, dass er erkennt, dass es eine 8-stellige Zahl ist: 36597686_15576 (hier sollte er die erste Zahlenreihe erkennen!)

Sprich die Zahlen stehen immer unterschiedlich da...

Danke euch im Voraus für die Unterstützung.

Lg. Angela Angel


Angehängte Dateien Thumbnail(s)
   
Top
#2
Hallo Angela,

diese UDF sollte das leisten, die Antwort ist "Wahr", falls 8 zusammenhängende Zahlen in der Zelle sind.


Code:
function i8Zahlen(rnd as range)
With CreateObject("vbscript.Regexp")
    .Pattern = "\d{8}"
    i8Zahlen = .Test(rng.value)
end with
end function


Wenn die zu prüfende Zahl in A1 steht:

B1: =i8Zahlen(A1)

mfg

(der Code ist ungeprüft und muss (vermutlich) debugged werden)
Top
#3
Hi Fennek,

1. function i8Zahlen(rng as range)

2. werden auch über achtstellige Zahlen als WAHR ermittelt (123456789)
Überlegen macht überlegen
Gruss aus dem schönen Hunsrück
_______ Klaus-Martin _______
Top
#4
=WAHL(1+MAX(;SUMMENPRODUKT({1.-2}*
ISTZAHL(--TEIL(A1&"_";ZEILE($1:$99);{8.9}))));"keine genau 8 Stellen enthalten!";TEIL(A1;SUMMENPRODUKT(
ISTZAHL(--TEIL(A1&"_";ZEILE($1:$99);8))*ZEILE($1:$99));8);"bitte unter mehreren auswählen!")


Keine genau 8stellige Ziffernfolge: "keine genau 8 Stellen enthalten!"

Eine genau 8stellige Ziffernfolge wird als solche zurückgegeben, z.B. "01234567"

Zwei oder mehr 8stellige Ziffernfolgen ergibt "bitte unter mehreren auswählen!"

Bei einer 8stelligen und einer 9+-stelligen Ziffernfolge wird nichts zurückgegeben (müsste noch angepackt werden)

Achtung: Formel auch sonst noch etwas fehlerhaft! 123456789_12345678 ergibt z.B. falsche "45678"
Top
#5
(24.07.2017, 10:07)lxxxangelxxxl schrieb: Hallo ihr lieben,

erst einmal Danke für die Aufnahme.
Ich bin leider kein Excel-Profi wie ihr, aber leider muss ich für die Arbeit etwas machen und weiß nicht weiter. Idea

Gibt es eine Formel, die mir filtert, dass zb. in einer Spalte nur Nummern angezeigt werden die 8-stellig sind?
Beispiel: 12345678, aber nicht 1234 5678 oder irgendwie anders dargestellt.
Oder eben auch, dass er erkennt, dass es eine 8-stellige Zahl ist: 36597686_15576 (hier sollte er die erste Zahlenreihe erkennen!)

Sprich die Zahlen stehen immer unterschiedlich da...

Danke euch im Voraus für die Unterstützung.

Lg. Angela Angel

Übrigends ich habe Excel 2016 auf Deutsch Undecided
Top
#6
Bitte zitiere nicht unnötig! "xl2016" ist doch eine absolute Feststellung.
Top
#7
@Klaus: Danke Blush 


Code:
function i8Zahlen(rng as range)
With CreateObject("vbscript.Regexp")
    .Pattern = "^\d{8}|$\d/{8}"
    i8Zahlen = .Test(rng.value)
end with
end function

Falls es noch andere Fälle geben sollte, sind weitere Korrekturen angesagt.

mfg
Top
#8
oder:

Code:
function i8Zahlen(rng as range)
With CreateObject("vbscript.Regexp")
   .Pattern = "\D\d{8}\D"
   i8Zahlen = .Test(" " & rng.value & " ")
end with
end function
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste