Clever-Excel-Forum

Normale Version: Zeilen prozentual verschieben/verkürzen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Leute,

hier meine Frage:

Ist es möglich in Excel eine Datenbasis von Werten um einen gewissen Prozentwert der gesamten Länge zu verkürzen. Konkret möchte ich quasi folgendes:

Istwert:

AAAABBBBCCCCDDDD

Sollwert (Verkürzung um 25%)
"LEER""LEER""LEER""LEER"AAABBBCCCDDD

Um mein Problem zu verdeutlichen habe ich noch einen Screenshot der Logik in Excel gemacht:
[Bild: 14fe8g]

Im Anhang findet Ihr auch das orginale Excel File.

Mir ist es quasi wichtig, dass der Endzeitpunkt konstant bleibt und die Phasen vorher um einen gewissen prozentsatz verkürzt werden.

Über Hilfe würde ich mich sehr freuen :19: ,

Viele Grüße,
Markus
Hallöchen,

hier mal ein erster Ansatz. Du kannst die Anzahl Einträge und die letzte gefüllte Spalte ermitteln. Davon ausgehend ermittelst Du die erste.

Arbeitsblatt mit dem Namen 'Tabelle1'
 CDEFGHIJKLMNOPQRSTUVWXYZ
6                      letzte Spalteerste Spalte
7AAAABBBBCCCCDDDD     16183
8  AAAABBBBCCCCDDDD   16205
9 AAAABBBBCCCCDDDD    16194
10     AAAABBBBCCCCDDDD16238
11                        
12                        
13                        
14        AABBCCDD      1810
15          AABBCCDD    2012
16         AABBCCDD     1911
17             AABBCCDD 2315

ZelleFormel
X7=ANZAHL2(C7:W7)
Y7{=MAX((C7:W7<>"")*SPALTE(C:W))}
Z7=Y7-X7+1
X8=ANZAHL2(C8:W8)
Y8{=MAX((C8:W8<>"")*SPALTE(C:W))}
Z8=Y8-X8+1
X9=ANZAHL2(C9:W9)
Y9{=MAX((C9:W9<>"")*SPALTE(C:W))}
Z9=Y9-X9+1
X10=ANZAHL2(C10:W10)
Y10{=MAX((C10:W10<>"")*SPALTE(C:W))}
Z10=Y10-X10+1
Y14=Y7
Z14=Y14-X7/2
Y15=Y8
Z15=Y15-X8/2
Y16=Y9
Z16=Y16-X9/2
Y17=Y10
Z17=Y17-X10/2
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.
Diese Tabelle wurde mit Tab2Html (v2.5.0) erstellt. ©Gerd alias Bamberg
Danke André,

2. Post folgt in Kürze
Hallo lieber André,

erstmal vielen Dank dass du dir überhaupt Gedanken um mein Problem machst. Leider trifft deine Lösung mein Problem noch nicht so ganz:

Ich möchte aus einer Datenbasis (AAAABBBBCCCCDDDD) automatisch einen prozentualen Anteil der Datenbasis generieren. Und zusätzlich muss der letzte Buchstab der Datenbasis immer konstant sein, also die neue Zahlenreihe einfach später beginnen.

Beispiel:

Datenbasis: AAAABBBBCCCCDDDD
Neu 75%: LeerLeerLeerLeerAAABBBCCCDDD
Neu 50%: Leer.......LeerAABBCCDD
Neu 50%: Leer.......LeerABCD

Das letzte D ist dabei immer in der selben Spalte.

Hier das Problem nochmal in Excel veranschaulicht (den 50% wert hätte ich gerne über eine Formel generiert) :

[url=
Dateiupload bitte im Forum! So geht es: Klick mich!
]

Da ich mit dem Thema ziemlich "lost" bin, würde ich mich freuen wenn mir da jemand unter die Arme greift.

Viele Grüße,
Markus
Hallo Markus,
Ich denke, ich habe es schon verstanden. Die eine Formel ermittelt das Ende der Zeichenkette, was Du ja bei der reduzierten auch brauchst. Die zweite Formel ermittelt die Anzahl der Zeichen. Dann durch zwei geteilt und vom Ende abgezogen usw kommst Du zum neuen Anfang.
Wenn Du die Anzahl Zeichen durch 8 teilst, hast Du z.B. die Anzahl jedes Buchstaben bei 50%.
Daraus könnte man nun eine Formel für die gekürzte Kette bilden. Bin allerdings am Smartphone und kann nicht gleich weiter machen.
Die Formel könnte im Prinzip so anfangen
=wenn(spalte() und dann eben In Abhängigkeit der Anzahl der Buchstaben weiter, im Prinzip
Wenn(zählenwenn(...a...)<2;a;wenn(..... usw
Die 2 dann natürlich nicht fest sondern anhand der Prozentzahl ermittelt.
Hi,

hier mal ein Ansatz:

Arbeitsblatt mit dem Namen 'Tabelle1'
 CDEFGHIJKLMNOPQRSTUVW
7AAAABBBBCCCCDDDD     
8  AAAABBBBCCCCDDDD   
9 AAAABBBBCCCCDDDD    
10     AAAABBBBCCCCDDDD
11                     
12                     
13                     
14        AABBCCDD     
15          AABBCCDD   
16         AABBCCDD    
17             AABBCCDD

ZelleFormel
C14=WENNFEHLER(WENN(SPALTE()<VERWEIS(9;1/($C7:$W7<>"");SPALTE($C7:$W7))-ANZAHL2($C7:$W7)/2+1;"";INDEX($C7:$W7;AGGREGAT(15;6;SPALTE($C7:$W7)/($C7:$W7<>"")-2;ZÄHLENWENN($B14:B14;">""")*2+1)));"")
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
Hallo,


kürzere Variante für unterschiedliche Teilungen (in 25%-Stufen)

Arbeitsblatt mit dem Namen 'Tabelle1'
 BCDEFGHIJKLMNOPQRSTUVW
7 AAAABBBBCCCCDDDD     
8   AAAABBBBCCCCDDDD   
9  AAAABBBBCCCCDDDD    
10      AAAABBBBCCCCDDDD
11                      
12                      
1350%                     
14         AABBCCDD     
15           AABBCCDD   
16          AABBCCDD    
17              AABBCCDD

ZelleFormel
C14=WENNFEHLER(WENN(SPALTE()<VERWEIS(9;1/($C7:$W7<>"");SPALTE($C7:$W7))-ANZAHL2($C7:$W7)*$B$13+1;"";INDEX($C7:$W7;AGGREGAT(15;6;SPALTE($C7:$W7)/($C7:$W7<>"")-2;1+ZÄHLENWENN($B14:B14;">""")/$B$13)));"")
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg