Clever-Excel-Forum

Normale Version: Spalte in Abständen nach Kriterien addieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Zusammen,

ich verzweifle gerade an einer dieser Netzhautpeitschen und bitte um Hilfe !

in der Tabelle werden über Monate Rechnungen eingetragen, 
in der Reihenfolge - Budget, Actual & Consumed

jetzt soll unten quasi Täglich eine Summe gebildet werden
aber nur mit jeweils einem der 3 Werte

Priorität liegt bei Consumed, Actual und als letztes das Budget

Anbei eine Beispiel Tabelle, das Original geht bis heute über knapp 150 Zeilen und ist in Spalte "CT" angekommen,
daher wirklich nur ein kurzer Auszug

Vielen Dank, das Ihr da mal reinschaut

Liebe Grüße
Gini
Hi Gini,

dein Aufbau ist für Auswertungen schlicht Murks. Das, was du willst, ist imho mit Formeln nicht lösbar. Ob VBA hilfreich sein könnte, weiß ich nicht - das müssen dir die Spezialisten sagen.

Wenn du deine Tabelle als Datensatztabelle aufbaust, könnten Berechnungen sowohl mit Formeln als auch mit einer Pivottabelle durchgeführt werden. Lies dir zum Thema Tabellenaufbau mal diesen Artikel https://www.online-excel.de/excel/singsel.php?f=52 durch.
Moin Günter,

es ist leider nicht meine Tabelle, diese wird im Ausland seit Jahren geführt und Änderungen sind schlicht weg nicht möglich ….. 
(getreu dem Motto : " Die sah aber schon immer so aus..." // hmpf… wie ich diesen Satz liebe *grrr*)

mit anderen Dingen und Kleinkram kam ich mit Hilfszeilen und viel umständlichen Kram weiter...….. nur da bin ich etwas aufgeschmissen...…

in kurzen Arbeitsblättern habe ich mir mit  "Wenn"  weiter... nur auf die Masse, ist es leider doch sehr Fehleranfällig...

und von VBA hab ich leider keinen Plan...

Liebe Grüße

Gini
Hi Gini,

das heißt, die Verantwortlichen sind sturer als 5 Grautiere auf einmal? Ich pflege solche netten Zeitgenossen mit Aussagen wie etwa "Die sah aber schon immer so aus..." oder "früher, da..." mit einem Satz umzustimmen:"Früher hatten alle mal über einen Donnerbalken gesch..."

Vllt. kannst du sie ja damit überzeugen.
Moin Günter,

*lol* Hab ich schon versucht...….  mit wirklich wenig Erfolg. 
Ich kann froh sein, das ich die Daten so überhaupt bekomme und nicht auf einem Blatt Papier (was wohl eher daran liegt, das wir kein Fax mehr nutzen, sonst würde ich es darüber bekommen)

bleibt nur, eine Lösung zu finden...…..
(tröstet mich grad ungemein, das ich anscheinend nicht einfach nur schlicht zu blöd dafür bin  Angel )

Liebe Grüße 
Gini

PS: Dort nutz man gelegentlich sogar den Donnerbalken noch  Blush
Moin

Käme eine Lösung mit PQ in Frage?

Ich habe doch erst mal eine Hilfsspalten-Lösung erstellt.
Arbeitsblatt mit dem Namen 'Tabelle1 (2)'
ABCDEFGHIJKLMNO
127. Apr.30. Apr.4. Mai.7. Mai.1. Mai.
218
3BaggerBudget100100100100100Bagger125100100110100
4Actual9585Bagger
5Consumed125110Bagger
6PlanierraupeBudget7070707070Planierraupe11175607070
7Actual8060Planierraupe
8Consumed11175Planierraupe
9LKWBudget120120120120120LKW120100111120120
10Actual80111LKW
11Consumed100LKW
122 AchserBudget1201201201201202 Achser12080120120120
13Actual802 Achser
143tnBudget2002002002002003tn190177170200200
15Actual2101771703tn
16Consumed1903tn
17KipperBudget100100100100100Kipper80100100100100
18Actual80Kipper
19
20
21Summe
22
23Summesoll sein746632661720710746632661720710

ZelleFormel
K3=VERWEIS(9^99;1/(1/C$3:C$18/($J$3:$J$18=$J3)))
K23=SUMME(K3:K18)
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.2) erstellt. ©Gerd alias Bamberg
Hallo,

hier einmal mit PowerQuery und Pivot.
Je nachdem, wie flexibel die Lösung sein muss, umso aufwändiger kann man die Sache gestalten.

Hier ein Vorschlag einer Funktion, die immer den Inhalt der letzten nichtleeren Zelle ihres Bereichs zurückgibt.

Die Funktion "Letzter" funktioniert so:

=Letzter("E3:G7")
ergibt den Wert von G7 oder falls dieser leer ist, der vorherigen Zelle, und falls diese leer ist, ... . In Deinem Fall würde die Summenformel so aussehen:

=letzter(C3:C5)+letzter(C6:C8)+letzter(C9:C11)+letzter(C12:C13)+letzter(C14:C16)+letzter(C17:C18)

Ach ja, noch was: In Deinem VBA-Editor in einem Modul legst Du noch die Funktion fest: 
Code:
    Function Letzter(ByVal Bereich As Range)
        Dim i As Long
        For i = 1 To Bereich.Count
            If Bereich(i) <> "" Then Letzter = Bereich(i)
        Next i
    End Function

Vorausgesetzt, dass die Reihenfolge in Deiner Tabelle so bleibt.

LG