Struktur aufbauen Zählenwenn?
#1
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.


Angehängte Dateien
.xlsx   test.xlsx (Größe: 9 KB / Downloads: 17)
Top
#2
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
[-] Folgende(r) 1 Nutzer sagt Danke an Bast4i für diesen Beitrag:
  • Zeichner
Top
#3
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
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Zeichner
Top
#4
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.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top
#5
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
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Zeichner
Top
#6
Vielleicht wollte der Fragesteller die Helfer auch nur verwirren.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top
#7
Thumbs Up 
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:
Top
#8
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.
Top
#9
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.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Top
#10
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
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Zeichner
Top


Gehe zu:


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