Clever-Excel-Forum

Normale Version: Struktur aufbauen Zählenwenn?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hi zusammen

Ich würde gerne eine etwas kompliziertere Struktur aufbauen. 
Ist es möglich das in der Spalte A Durchnummeriert wird wie ich in der Beispieldatei von Hand eingetragen habe? 
Nummeriert wird immer neu nach dem Punkt, in Abhängigkeit ob in Spalte B,C,D oder E ein text steht.

Ist so etwas mit einer Formel überhaupt möglich?
Wenn nein, würde es mit einem Script funktionieren?

Vielen Dank für die Hilfe.
Hallo Zeichner.

Ja, es ist mit Formeln möglich. Aber PUHHHH, schön ist was anderes.

Code:
=WENN(B5<>"";LINKS(A4;1)+1&".0.0";WENN(C5<>"";LINKS(A4;1)&"."&TEIL(A4;3;1)+1&".0";WENN(D5<>"";LINKS(A4;3)&"."&TEIL(A4;5;1)+1;"Fehler")))
Das hat natürlich noch ein paar Hasenfüße:
- Die erste Zeile muss händisch mit 1.0.0 markiert werden. Ab dann kannst Du die Formel einfügen.
- Es werden alle Stufen 3-stellig angegeben. Also im Zweifel hinten mit Nullern.
- Die Erweiterung auf mehr Stufen ist recht aufwändig.

Also es geht, mit einem Makro geht es aber sicher schneller, schöner und anpassungsfreudlicher.

Gruß
Sebastian
Hi

mal 2 Varianten dazu.
____|____A___|__B__|__C__|__D__|__E__|_F|____G___|

   1|        |     |     |     |     |  |        |
   2|        |     |     |     |     |  |        |
   3|        |     |     |     |     |  |        |
   4| 1.0.0.0|text |     |     |     |  |       1|
   5| 1.1.0.0|     |text |     |     |  |     1.1|
   6| 1.2.0.0|     |text |     |     |  |     1.2|
   7| 2.0.0.0|text |     |     |     |  |       2|
   8| 2.1.0.0|     |text |     |     |  |     2.1|
   9| 2.1.1.0|     |     |text |     |  |   2.1.1|
  10| 2.1.2.0|     |     |text |     |  |   2.1.2|
  11| 2.1.3.0|     |     |text |     |  |   2.1.3|
  12| 2.1.4.0|     |     |text |     |  |   2.1.4|

Code:
A4   =ANZAHL2($B$4:B4)&"."&ANZAHL2(INDEX(C:C;VERGLEICH("*";$B$4:B4;-1)+3):C4)&"."&ANZAHL2(INDEX(D:D;WENNFEHLER(VERGLEICH("*";$C$4:C4;-1);1)+3):D4)&"."&ANZAHL2(INDEX(E:E;WENNFEHLER(VERGLEICH("*";$D$4:D4;-1);1)+3):E4)

Code:
G4   =TEIL(ANZAHL2($B$4:B4)&"."&ANZAHL2(INDEX(C:C;VERGLEICH("*";$B$4:B4;-1)+3):C4)&"."&ANZAHL2(INDEX(D:D;WENNFEHLER(VERGLEICH("*";$C$4:C4;-1);1)+3):D4)&"."&ANZAHL2(INDEX(E:E;WENNFEHLER(VERGLEICH("*";$D$4:D4;-1);1)+3):E4);1;WENNFEHLER(FINDEN(".0";ANZAHL2($B$4:B4)&"."&ANZAHL2(INDEX(C:C;VERGLEICH("*";$B$4:B4;-1)+3):C4)&"."&ANZAHL2(INDEX(D:D;WENNFEHLER(VERGLEICH("*";$C$4:C4;-1);1)+3):D4)&"."&ANZAHL2(INDEX(E:E;WENNFEHLER(VERGLEICH("*";$D$4:D4;-1);1)+3):E4))-1;8))

Gruß Elex
Hallo Elex

Nicht schlecht.
Leider weicht das Ergebnis in sieben Fällen vom Wunschergebnis ab.
1,1  1,2  2,1  3,1  3,2  3,3  und  3,4  werden mit Komma geschrieben und nicht mit Punkt.
2.2  weicht aber von dieser Regel ab.
Hi

das im Bsp. mal Komma und mal Punkt verwendet wurde war mir entgangen. Ich erkenne aber auch keine Logik für die Verteilung der beiden.
 
Formel noch mal etwas verändert.   (Formel ist jetzt mit shift+strg+Enter zu schließen)

A4   =WECHSELN(ANZAHL2($B$4:B4)&"."&ANZAHL2(INDEX(C:C;MAX(($B$4:B4<>"")*ZEILE($A$4:$A4))):C4)&"."&ANZAHL2(INDEX(D:D;MAX(($B$4:C4<>"")*ZEILE($A$4:$A4))):D4)&"."&ANZAHL2(INDEX(E:E;MAX(($B$4:D4<>"")*ZEILE($A$4:$A4))):E4);".0";"")

Gruß Elex
Vielleicht wollte der Fragesteller die Helfer auch nur verwirren.
Hi Elex

Vielen Dank für die Formel, sie funktioniert :D
Das Problem mit den Komma habe ich wieso auch immer nicht.

Wow, da wäre ich von selber wohl nie drauf gekommen, echt komplex das ding..

Top   :23:
Hi Elex

Ich habe gerade bemerkt das es wenn hoch kommt sogar noch 2 kommastellen mehr sein könnten   Dodgy
Leider verstehe ich die Formel nicht um Sie selber zu ergänzen..
Kannst du mir noch einmal helfen?
Ich nutze deine Formel die du in spalte G eingetragen hast, die ohne die 0.
Sub Autonummerierung(): Workbooks.Add xlWorksheet: [A1:D1] = Split("Trigger Kapitel Titel Kombi")
[A2:A21] = WorksheetFunction.Transpose(Split("1 1 1 1 0 0 -1 -1 1 0 1 0 -2 1 0 0 -2 1 0 -1"))
[C2:C21] = WorksheetFunction.Transpose(Split("Getränke Wasser abgefüllt still medium classic " & _
"Kranberger Bier Pils Weizen Kristall Hefe Wein rot weiß rosé Essen Vorspeise Nachspeise Fazit"))
ActiveWorkbook.Names.Add Name:="Nummerierung", RefersToR1C1:= _
"=TEXT(SUBSTITUTE(R[-1]C,""."",)*10^RC[-1]+1,REPT(""0""""."""""",LEN(R[-1]C)/2+RC[-1]))"
[B2].FormulaR1C1 = "=""1.""": [B3:B21].FormulaR1C1 = "=Nummerierung"
[D2:D21].FormulaR1C1 = "=RC[-2]&"" ""&RC[-1]"
[E1] = 8: [E2:E21].FormulaR1C1 = "=REPT("" "",(LEN(RC[-3])-2)/2*R1C)&RC[-2]": End Sub

Das Makro erstellt Dir eine selbsterklärende Datei. Ich habe auch noch eine unbegrenzte Variante.
Hi

die Formel aus #5 ist auch ohne 0. Jetzt um 2 Stellen erweitert.
Formel mit shift+strg+Enter zu schließen
Code:
=WECHSELN(ANZAHL2($B$4:B4)&"."&ANZAHL2(INDEX(C:C;MAX(($B$4:B4<>"")*ZEILE($A$4:$A4))):C4)&"."&ANZAHL2(INDEX(D:D;MAX(($B$4:C4<>"")*ZEILE($A$4:$A4))):D4)&"."&ANZAHL2(INDEX(E:E;MAX(($B$4:D4<>"")*ZEILE($A$4:$A4))):E4)&"."&ANZAHL2(INDEX(F:F;MAX(($B$4:E4<>"")*ZEILE($A$4:$A4))):F4)&"."&ANZAHL2(INDEX(G:G;MAX(($B$4:F4<>"")*ZEILE($A$4:$A4))):G4);".0";"")

Gruß Elex
Seiten: 1 2