Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1284to1288
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Liste "expandieren"

Liste "expandieren"
26.10.2012 13:29:40
AndreasG
Hallo Leute,
leider muss ich euch vor dem WE noch einmal um Hilfe bitten. Ich habe eine Liste mit variabler Länge bestehend aus 4 Spalten.
Sp1: von/am
Sp2: bis
Sp3: Projekt
Sp4: Wert
In Spalte 1 und 2 stehen Datumsfelder (zB. 01.04.2013) in Spalte 3 eine Bezeichnung und in Spalte 4 ein Wert. Spalte 1, 3 und 4 sind immer gefüllt. Spalte 2 manchmal. Und genau da ist mein Problem. Wenn Spalte 2 mit einem bis-Datum gefüllt (z.B. 31.08.13) und Spalte 1 mit einem von-Datum (z.B. 01.06.2013) dann soll daraus in meiner neuen Liste aus dieser einen Zeile genau 3 Zeilen mit Datum (1.6; 1.7 und 1.8.) werden. Die Spalte 2 ist (wenn gefüllt) immer mit dem Monatsletzten belegt. Eine Zeile, die kein bis-Datum hat, soll 1:1 übernommen werden.
Beispieldatei anbei:
https://www.herber.de/bbs/user/82328.xlsx
Die Quelldaten stehen in Spalte E bis H. Wie das Ergebnis aussehen soll habe ich in Spalten K bis M beschrieben.
Jahresübergreifende Zeilen kommen nicht vor!
Grüße und danke für Hilfe
Andreas

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Anmerkung: VBA leider nicht erlaubt :-(
26.10.2012 14:16:14
AndreasG
o.w.T

AW: Anmerkung: VBA leider nicht erlaubt :-(
28.10.2012 01:09:57
Matze,Matthias
Hi Andreas,
soweit ich das beurteilen kann, gibt es keine Excelfunktion die Zeilen einfügen kann,
daher wird es ohne VBA nicht machbar sein.
Entweder mit VBA ein "Funktion" erstellen oder gleich damit dein Ziel erreichen.
Die "allg." Frage, warum kein VBA?
lasse offen, da hier noch kein Profi geantwortet hat.
Matze

Monatsbeginne auflisten
28.10.2012 07:51:16
Erich
Hi Andreas,
probier mal:
 EFGHIJKLMNO
1      O2 muss leer oder 0 sein Hilfsspalte
2von/ambisProjektWert  vonProjektWert  
301.01.2013 Projekt 11,00  01.01.2013Projekt 11,00 1
401.11.201301.11.2013Projekt 1a4,00  01.11.2013Projekt 1a4,00 2
501.05.2013 Projekt 1b4,22  01.05.2013Projekt 1b4,22 3
601.03.201330.04.2013Projekt 26,00  01.03.2013Projekt 26,00 4,0001
701.08.201330.09.2013Projekt 2b7,00  01.04.2013Projekt 26,00 4,0002
801.01.2011 Projekt 36,50  01.08.2013Projekt 2b7,00 5,0001
901.08.2014 Projekt 4b9,00  01.09.2013Projekt 2b7,00 5,0002
1001.09.201331.01.2014Projekt 420,00  01.01.2011Projekt 36,50 6
1101.12.201701.02.2018Projekt 55,00  01.08.2014Projekt 4b9,00 7
1201.04.2013 Projekt 666,66  01.09.2013Projekt 420,00 8,0001
13      01.10.2013Projekt 420,00 8,0002
14      01.11.2013Projekt 420,00 8,0003
15Alle Monatsbeginne von - bis  01.12.2013Projekt 420,00 8,0004
16      01.01.2014Projekt 420,00 8,0005
17      01.12.2017Projekt 55,00 9,0001
18      01.01.2018Projekt 55,00 9,0002
19      01.02.2018Projekt 55,00 9,0003
20      01.04.2013Projekt 666,66 10

Formeln der Tabelle
ZelleFormel
K3=WENN(REST(10000*O3;10000)<1,5;INDEX(E$3:E$12;O3); DATUM(JAHR(K2); MONAT(K2)+1;1))
L3=INDEX(G$3:G$12;O3)
M3=INDEX(H$3:H$12;O3)
O3=KÜRZEN(O2)+WENN(REST(O2;1)=0; 1+WENN((INDEX($E$3:$E$12;O2+1)<INDEX($F$3:$F$12;O2+1))*ISTZAHL(INDEX($F$3:$F$12;O2+1)); 0,0001;0); WENN(DATEDIF(INDEX($E$3:$E$12;O2); INDEX($F$3:$F$12;O2); "m")+1 >RUNDEN(10000*REST(O2;1); ); REST(O2;1)+1/10000;1+WENN(ISTZAHL(INDEX($F$3:$F$12;O2+1)); 0,0001;0)))

Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
Von-Bis-Liste expandieren
28.10.2012 12:45:05
Erich
Hi Andreas,
wenn es mal nicht um Monate, sondern nur um Zahlen geht:
 BCDEFGHIJKL
2      Anzahl:18L4 muss leer oder 0 sein
3Nr vonNr bisProjektWert      Hilfsspalte
41 Projekt 11,00  NrProjektWert 0
54747Projekt 1a4,00  1Projekt 11,00 1
65 Projekt 1b4,22  47Projekt 1a4,00 2
734Projekt 26,00  5Projekt 1b4,22 3
8108109Projekt 2b7,00  3Projekt 26,00 4,0001
91 Projekt 36,50  4Projekt 26,00 4,0002
1026 Projekt 33b9,00  108Projekt 2b7,00 5,0001
11913Projekt 420,00  109Projekt 2b7,00 5,0002
12-100-98Projekt 55,00  1Projekt 36,50 6
134 Projekt 666,66  26Projekt 33b9,00 7
14      9Projekt 420,00 8,0001
15      10Projekt 420,00 8,0002
16      11Projekt 420,00 8,0003
17      12Projekt 420,00 8,0004
18      13Projekt 420,00 8,0005
19      -100Projekt 55,00 9,0001
20      -99Projekt 55,00 9,0002
21      -98Projekt 55,00 9,0003
22      4Projekt 666,66 10
23          0
24          0

Formeln der Tabelle
ZelleFormel
I2=SUMMENPRODUKT(ISTLEER($C$4:$C$99)*ISTZAHL($B$4:$B$99)+ISTZAHL($C$4:$C$99)*(ABS($C$4:$C$99+1-$B$4:$B$99)))
H5=WENN($L5;WENN(REST(10000*L5;10000)<1,5;INDEX(B$4:B$99;L5); H4+1); "")
I5=WENN($L5;INDEX(D$4:D$99;$L5); "")
J5=WENN($L5;INDEX(E$4:E$99;$L5); "")
L5=(I$2>ZEILE()-5)*(KÜRZEN(L4)+WENN(REST(L4;1)=0; 1+WENN((INDEX($B$4:$B$99;L4+1)<INDEX($C$4:$C$99;L4+1))*ISTZAHL(INDEX($C$4:$C$99;L4+1)); 0,0001;0); WENN(INDEX($C$4:$C$99;L4)-INDEX($B$4:$B$99;L4)+1 >RUNDEN(10000*REST(L4;1); ); REST(L4;1)+1/10000;1+WENN(ISTZAHL(INDEX($C$4:$C$99;L4+1)); 0,0001;0))))

Die Anzahl der Ausgabezeilen wird in I2 einmalig berechnet,
um die Endebedingung in Spalte L einfacher formulieren zu können.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich und: Schönen Restsonntag noch!

Anzeige
Von-Bis-Liste expandieren - einfacher
29.10.2012 00:04:41
Erich
Hi,
so ist es ein wenig einfacher:
 BCDEFGHIJK
2       Anzahl:18 
3Nr vonNr bisProjektWert Hilf    
41 Projekt 11,00 1 NrProjektWert
51111Projekt 1a4,00 2 1Projekt 11,00
65 Projekt 1b4,22 3 11Projekt 1a4,00
734Projekt 26,00 4 5Projekt 1b4,22
8-19-18Projekt 2b7,00 6 3Projekt 26,00
93 Projekt 36,50 8 4Projekt 26,00
1026 Projekt 33b9,00 9 -19Projekt 2b7,00
11913Projekt 420,00 10 -18Projekt 2b7,00
12-100-98Projekt 55,00 15 3Projekt 36,50
134 Projekt 666,66 18 26Projekt 33b9,00
14       9Projekt 420,00
15       10Projekt 420,00
16       11Projekt 420,00
17       12Projekt 420,00
18       13Projekt 420,00
19       -100Projekt 55,00
20       -99Projekt 55,00
21       -98Projekt 55,00
22       4Projekt 666,66

Formeln der Tabelle
ZelleFormel
J2=MAX(G:G)+(VERGLEICH(-1E+307;B:B;-1)=VERGLEICH(-1E+307;C:C;-1))*(C13-B13)
G4=WENN(B4="";"";WENN(ZEILE()=4;1;G3+1+(C3-B3*ISTZAHL(C3))))
I5=WENN(ZEILE(B1)>J$2;"";WENN(ISTNV(VERGLEICH(ZEILE(B1); G:G;0)); I4+1;INDEX(B:B;VERGLEICH(ZEILE(B1); G:G;0))))
J5=WENN(ZEILE(B1)>J$2;"";WENN(ISTNV(VERGLEICH(ZEILE(B1); G:G;0)); J4;INDEX(D:D;VERGLEICH(ZEILE(B1); G:G;0))))
K5=WENN(ZEILE(B1)>J$2;"";WENN(ISTNV(VERGLEICH(ZEILE(B1); G:G;0)); K4;INDEX(E:E;VERGLEICH(ZEILE(B1); G:G;0))))

Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: perfetto :-)
29.10.2012 10:36:08
AndreasG
Hallo Erich,
G E N I A L!
ein ganz herzliches Dankeschön an Dich!!
Grüße
Andreas

Monatsbeginne auflisten - einfacher
29.10.2012 00:37:30
Erich
Hi Andreas,
und hier eine vereinfachte Erzeugung der Liste der Monatsersten:
 BCDEFGHIJK
2       Anzahl:19 
3Nr vonNr bisProjektWert Hilf    
401.01.13 Projekt 10 1 NrProjektWert
501.11.1301.11.13Projekt 1a1 2 01.01.13Projekt 10
601.05.13 Projekt 1b10 3 01.11.13Projekt 1a1
701.03.1330.04.13Projekt 2100 4 01.05.13Projekt 1b10
801.08.1330.09.13Projekt 2b1000 6 01.03.13Projekt 2100
901.01.11 Projekt 310000 8 01.04.13Projekt 2100
1001.08.14 Projekt 33b1000 9 01.08.13Projekt 2b1000
1101.09.1331.01.14Projekt 4100 10 01.09.13Projekt 2b1000
1201.12.1701.02.18Projekt 510 15 01.01.11Projekt 310000
1301.04.1301.05.13Projekt 661 18 01.08.14Projekt 33b1000
14       01.09.13Projekt 4100
15       01.10.13Projekt 4100
16       01.11.13Projekt 4100
17       01.12.13Projekt 4100
18       01.01.14Projekt 4100
19       01.12.17Projekt 510
20       01.01.18Projekt 510
21       01.02.18Projekt 510
22       01.04.13Projekt 661
23       01.05.13Projekt 661

Formeln der Tabelle
ZelleFormel
J2=MAX(G:G)+WENN(VERGLEICH(-1E+307;B:B;-1)=VERGLEICH(-1E+307;C:C;-1); DATEDIF(VERWEIS(9^7;B:B); VERWEIS(9^7;C:C); "m"); )
G4=WENN(B4="";"";WENN(ZEILE()=4;1;G3+WENN(ISTZAHL(C3); 1+DATEDIF(B3;C3;"m"); 1)))
I5=WENN(ZEILE(B1)>J$2;"";WENN(ISTNV(VERGLEICH(ZEILE(B1); G:G;0)); DATUM(JAHR(I4); MONAT(I4)+1;1); INDEX(B:B;VERGLEICH(ZEILE(B1); G:G;0))))
J5=WENN(ZEILE(B1)>J$2;"";WENN(ISTNV(VERGLEICH(ZEILE(B1); G:G;0)); J4;INDEX(D:D;VERGLEICH(ZEILE(B1); G:G;0))))
K5=WENN(ZEILE(B1)>J$2;"";WENN(ISTNV(VERGLEICH(ZEILE(B1); G:G;0)); K4;INDEX(E:E;VERGLEICH(ZEILE(B1); G:G;0))))

Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige