Clever-Excel-Forum

Normale Version: Zahl zwischen 2 Zahlen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Moin!
Dein Beispiel ist Murks, aber das schrieb Dir Jörg ja bereits!
C000500 kann sowohl Akte als auch Bleistifte sein!

Bevor Du Dir (eher sollen wir das ja) Gedanken über eine Userform machst, solltest Du erst mal eine vernünftige Datenbasis erstellen.
Woher kommen überhaupt die Warengruppen?
Wenn Du eine komplette Liste aller Artikel erstellst, kannst Du anhand der Bestellnummer und mittels SVERWEIS(…;…;…;0) arbeiten.
Willst Du tatsächlich mit Bereichen arbeiten, sollte die Bestellnummer der Einfachheit halber numerisch sein.
Die Bereiche dürfen dann nicht überlappen und dürfen untereinander keine Lücken aufweisen!
Dann klappt snbs INDEX(Spalte;VERGLEICH()) oder einem einfachen VERWEIS()
Das mal visuell (achte auf das Zahlenformat der ArtNr):

ABCDE
1abArtGrpArtNrArtGrp
2C000000HefteC000101Bleistifte
3C000100BleistifteC000017Hefte
4C000150AkteC000555#NV#
5C000200MülleimerC000209Mülleimer
6C000222#NV#

ZelleFormatWert
A2"C"0000000
D2"C"000000101

ZelleFormel
E2=VERWEIS(D2;A:B)

Gruß Ralf
@RPP63 Also ich hab die Artikel eigentlich nur als Bespiel benutzt aber das Prinzip soll schon eben so sein dass ich ein Code in einer Zahlenreihe finde eben

Von C000130 bis C000300 und er eben den Code C000200 zb finde und das in einer ganzen Liste von Zahlenreihenfolgen eben durcheinander
Kann mir da sonst keiner hier dies umsetzen odder drück ich mich schwierig aus was ich eben genau haben will es geht mir eben darum dass ich Zahlenreihen hab mit einem Buchstaben und eine 6 stellige Zahl die von C000001 bis unendlich geht und wenn ich zb eine Zahl aufruffe soll ech mir sagen in welcher Zahlenreihe ich eben bin.

zb. Zahlenreihe C000110 bis C000150 gehören zur Kategorie Bleistifte wenn ich dann C000141 aufrufe mus "Bleistifte dahin steh'n kommen.

Doch "Blleistifte zb. kann auch noch für Zahlenreihe C000620 bis C000670 stehn also wenn ich C000623 eingebe kommt auch Bleistifte.

Und das ganze sollte auch umgedreht funktionnieren wenn ich Bleistifte eingebe sollte als Resultat C000110 bis C000150 und C000620 bis C000670 als Resultat kommen.

Wer kann mir das umsetzen Smile Am besten in Userform

Vielen lieben dank jetzt schon
Hast Du mein Beispiel denn einmal nachgestellt und verstanden?   Confused
Schließlich macht es genau das was Du willst.

Und ein Userform macht (wenn überhaupt) erst dann Sinn, wenn Du meine Simpel-Formel nachvollziehen kannst.
Es gibt auch eine Formelhilfe:
https://support.office.com/de-de/article...b?NS=EXCEL&Version=90&SysLcid=1031&UiLcid=1031&AppVer=ZXL900&HelpId=xlmain11.chm60076&ui=de-DE&rs=de-DE&ad=DE

Dort ist die Vektorversion von VERWEIS() die für Dich interessante.
C000001 - C000100     Hefte
C000700 - C000750     Bleistifte
C000350 - C000554     Akte
C000487 - C001001     Bleistifte

ist doch schon auf den ersten Blick ohne Sinn und Verstand.

C000001     Hefte
C000101     
C000350     Akte
C000487     Bleistifte
C000551     Akte
C000555     Bleistifte
C001002     

wäre korrekt (als Beispiel). Die Krankheit bei den meisten Leuten ist, etwas von-bis angeben zu müssen.
Leute, ihr könnt hier weitermachen:
https://www.ms-office-forum.net/forum/sh...p?t=359012
(19.03.2019, 13:55)MisterBurns schrieb: [ -> ]Leute, ihr könnt hier weitermachen...

Hallo, sonst eventuell. Aber in dem Fall: Sicher nicht.
xxxxx
Hallöchen,

Code:
C000001 - C000100     Hefte
C000700 - C000750     Bleistifte
C000350 - C000554     Akte
C000487 - C001001     Bleistifte

ist doch schon auf den ersten Blick ohne Sinn und Verstand.

könnte sich natürlich auch um einen Zahlendreher handeln. Hätte dann der Satz wenig Sinn und Verstand Sad ? :15:
Also, im Sinne von Bürokratieabbau, weniger Bleistifte, z.B. statt 487 dann 847 - 1001, und die Denkprozesse pegeln sich wieder ein. :100:
Hallo,

die Frage ist etwas unbestimmt und Tippfehler helfen nicht unbedingt.

Ein eher allgemeiner Ansatz, den Du selbst anpassen müßtest:

Code:
Sub Petz()
Const Basis As String = "C0000"
Dim UW, OW, Tx

Tx = Array("Bleistifte", "Hefte", "nicht zugeordnet")
'unterer Wert
UW = Array(43000, 45500)
'oberer Wert
OW = Array(43500, 46000)

'Werte in Spalte A (mit Überschrift)
'Ausgabe: Gruppe in Spalte B
lr = Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To lr
    Select Case Val(Right(Cells(i, "A"), 5))
        Case UW(0) To OW(0)
            ret = 0
        Case UW(1) To OW(1)
            ret = 1
        Case Else
            ret = 2
    End Select
    Cells(i, "B") = Tx(ret)
Next i
End Sub

Im Anhang sind meine Daten zum Testen.

mfg
Seiten: 1 2 3 4