Zahlenbereich in Zahlenfolge umwandeln

Hallo liebes RagTime-Forum,

ich möchte einen Zahlenbereich (in Spalte A) in eine Zahlenfolge (Spalte B) umwandeln, brauche also eine Formel, die z.B. "246–251" in "246, 247, 248, 249, 250, 251" umsetzt.

Mit Mega-Formelaufwand und vor allem der Limitierung auf eine bestimmte Bereichsgröße ist es relativ leicht machbar, aber ich frage mich, ob's da nicht eine geniale Formel gibt, die das löst.

Vielleicht hatte schon mal jemand das Problem.

Danke für Eure Tipps!

Steffen

Re: Zahlenbereich in Zahlenfolge umwandeln

#9730 On 14 September, 2010 16:37 Thomas Kaegi said,

Hallo Steffen

Ich habe deine Aufgabenstellung so verstanden: In Zelle A1 steht ein ganzzahliger Bereich in der Form "Anfangswert-Endwert". In Spalte B (ab B1) sollen alle Ganzzahlen von Anfangswert bis zum Endwert aufgelistet werden.

Folgende Formel löst das Problem:
SpezialWenn(D1≠A1;SetzeZelle(A1;D1)&SetzeZelle(Finden("-";A1);F1)&SetzeZelle(Links(A1;F1-1)-1;E1)&SetzeZelle(Wert(Rechts(A1;Länge(A1)-F1));F1)&VSuchlauf(B:B;LfdZelle;0;SetzeZelle("";B:B;LfdIndex))&VSuchlauf(A:A;LfdResultat<F1;F1-1;SetzeZelle(E1+LfdIndex;B:B;LfdIndex)))

Die Formel steht bei mir in C1. Die Zellen D1:F1 sind als Hilfszellen verwendet.

Hier die Erläuterung der Formel:
1. SpezialWenn(D1≠A1;
Verriegelung der Formel, da sonst die beiden Suchläufe dauernd ausgeführt und damit den ganzen Computer lahmlegen würden. Der Rest der Formel wird nur ausgeführt, wenn der Inhalt von Zelle A1 vom Inhalt der Zelle D1 abweicht.

2. SetzeZelle(A1;D1)
Wert von A1 in D1 übertragen, damit die Verriegelung gemäss Pt. 1 wieder greift.

3. SetzeZelle(Finden("-";A1);F1)
Position des Bindestrichs in der Bereichsangabe ermitteln und in Zelle F1 ablegen.

4. SetzeZelle(Links(A1;F1-1)-1;E1)
Den Anfangswert des Bereichs aus der Bereichsangabe isolieren und (um 1 vermindert!) in Zelle E1 ablegen.

5. SetzeZelle(Wert(Rechts(A1;Länge(A1)-F1));F1)
Den Endwert des Bereichs aus der Bereichsangabe isolieren und in Zelle F1 ablegen (der vorher dort abgelegte Wert wird nicht mehr benötigt und kann deshalb überschrieben werden).

6. VSuchlauf(B:B;LfdZelle;0;SetzeZelle("";B:B;LfdIndex))
Löschen der bisher in Spalte B stehenden Werte, damit bei einem verkleinerten Bereich keine «Leichen» übrig bleiben.

7. VSuchlauf(A:A;LfdResultat<F1;F1-1;SetzeZelle(E1+LfdIndex;B:B;LfdIndex))
Ermitteln der Werte im Bereich und Einsetzen in Spalte B.

Natürlich können die Formeln und Hilfswerte auch wo anders stehen, z.B. in einem zweiten Rechenblatt.

Thomas
ragtime-consult.ch

Re: Zahlenbereich in Zahlenfolge umwandeln

#9731 On 14 September, 2010 16:49 Thomas Kaegi said,

Achtung: Das Ende der Formel wurde im Forum und im daraus generierten Mail vom "kleiner-Zeichen" an unterdrückt. Im Forum konnte ich das korrigieren, im Mail geht das nicht. Hier deshalb die Korrektur, damit die Mailing-Abonnenten die Korrektur auch sehen: Nach "LfdResultat" folgt das "Kleiner-Zeichen" und danach noch
F1;F1-1;SetzeZelle(E1+LfdIndex;B:B;LfdIndex)))

Thomas

Re: Zahlenbereich in Zahlenfolge umwandeln

#9732 On 14 September, 2010 16:50 Thomas Kaegi said,

Und noch eine Bemerkung:
Die doppelten Anführungszeichen müssen in Deutschland durch einfache ersetzt werden.

Thomas

Re: Zahlenbereich in Zahlenfolge umwandeln

#9733 On 14 September, 2010 17:05 Thomas Kaegi said,

Und dann noch das: Da ist ein Relikt von einem Versuch in der Formel stehen geblieben - im zweiten Suchlauf spielt der Anfangswert keine Rolle. Dort kann einfach eine "0" stehen.

Thomas

Re: Zahlenbereich in Zahlenfolge umwandeln

#9734 On 14 September, 2010 17:24 Lutz-Dieter Bornemann said,

Am 14.09.2010 um 17:31 schrieb Steffen:

> Nein, das wäre leicht.
>
> Ich meine (problemreduziert), dass ich in die Zelle A1 "246–251" eingeben kann und mir die Zelle B1 daraus "246, 247, 248, 249, 250, 251" macht.
>

Hallo Steffen,

versuche es mit folgender Formel in B1:

Suchlauf(A:A;1;Links(A1;Finden('-';A1)-1);LfdResultat&', '&Text(Wert(Links(A1;Finden('-';A1)-1))+LfdZähler);LfdZähler=Wert(Teil(A1;Finden('-';A1)+1;10))-Wert(Links(A1;Finden('-';A1)-1)))

(Nach dem Kopieren ev. Zeilenschaltungen entfernen!)

Gruß
Lutz

Re: Zahlenbereich in Zahlenfolge umwandeln

#9735 On 14 September, 2010 20:18 Steffen said,

Ich bin begeistert und total fasziniert!

Vielen vielen Dank, Lutz für Deine exakt passende Formel und Thomas für Deine Mühe und die wie immer bemerkenswerte didaktische Aufbereitung!

Steffen

Re: Zahlenbereich in Zahlenfolge umwandeln

#9728 On 14 September, 2010 16:24 Lutz-Dieter Bornemann said,

Hallo Steffen,

leider ist Einiges unklar.

Meinst Du:

A1: 246
A2: 247
A3: 248
usw.

soll in B1 „246, 247, 248“

ergeben?

Gruß
Lutz

Am 14.09.2010 um 16:36 schrieb Steffen:

> Hallo liebes RagTime-Forum,
>
> ich möchte einen Zahlenbereich (in Spalte A) in eine Zahlenfolge (Spalte B) umwandeln, brauche also eine Formel, die z.B. "246–251" in "246, 247, 248, 249, 250, 251" umsetzt.
>
> Mit Mega-Formelaufwand und vor allem der Limitierung auf eine bestimmte Bereichsgröße ist es relativ leicht machbar, aber ich frage mich, ob's da nicht eine geniale Formel gibt, die das löst.
>
> Vielleicht hatte schon mal jemand das Problem.
>
> Danke für Eure Tipps!
>
> Steffen
>
>
>

Re: Zahlenbereich in Zahlenfolge umwandeln

#9729 On 14 September, 2010 16:29 Steffen said,

Nein, das wäre leicht.

Ich meine (problemreduziert), dass ich in die Zelle A1 "246–251" eingeben kann und mir die Zelle B1 daraus "246, 247, 248, 249, 250, 251" macht.

Steffen