Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
936to940
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
936to940
936to940
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bedingte Summierung anhand von Werten aus Liste

Bedingte Summierung anhand von Werten aus Liste
07.01.2008 17:16:01
Werten
Hallo
suche zu folgendem Problem eine Lösung
In einer Spalte (A) befinden sich Kennzeichen (zB eine Zahl oder String).
In einer weiteren Spalte (B) befinden sich Beträge
Nun möchte ich die Beträge aus Spalte B addieren, die ein oder mehreren Werten aus Spalte A enstprechen.
Beispiel
Sobald sich in Spalte A der Wert 100, 200 oder 300 befindet, sind die Beträge der jeweilgen Zeilen in der Spalte B zu addieren
=SumBetrag(A:A;"100, 200,300";B:B") (so könnte die Funktion aussehen)
- Die Zahlen sind nicht aufsteigend und können mehrmals vorkommen (deswegen Summe;-)
(Evtl kann ich auch anstelle der Zahlen bestimmte Strings nehmen!
oder
anstelle von Komma ein Semikolon verwenden)

ThanX vorab

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
mit Summenprodukt ...
07.01.2008 17:56:52
Matthias
Hallo Joachim
Userbild
Userbild

AW: mit Summenprodukt ...
08.01.2008 09:36:00
Joachim
Hallo,
hierzu folgende Anmerkung:
- Wenn ich die ganzen Spalten angebe, kommt als Ergebnis #ZAHL !
- Wenn ich mehrere Werte addieren möchte, ist das ganze nicht mehr richtig zu pflegen und sieht furchtbar aus:
Bspw für 3 Werte (je mehr Werte, desto unübersichtlicher !)
=SUMMENPRODUKT((SuchBereich=F13)*(WertBereich))+SUMMENPRODUKT((SuchBereich=F14)*(WertBereich))+SUMMENPRODUKT((SuchBereich=F15)*(WertBereich))
- Wie mache ich daraus ein Makro/Funktion?
Evtl ist das sinnvoller?
Grüße
Joachim

Anzeige
auch mit summenprodukt()
08.01.2008 09:42:00
heikoS
Hallo Joachim,
ich würde das ganze so lösen:
Tabelle1

 ABC
110010110
21002 
35005 
42008 
56009 
630020 
720020 
810050 
980020 
109001 

Formeln der Tabelle
ZelleFormel
C1=SUMMENPRODUKT((TEXT(A1:A10;"#")={"100"."200"."300"})*(B1:B10))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Klappt´s?
Gruß Heiko

Anzeige
AW: auch mit summenprodukt()
08.01.2008 09:55:52
Joachim
Super, so gehts !
ThanX für die schnelle Antwort

Bitte, danke für Deine Rückmeldung! oT
08.01.2008 09:59:05
heikoS

Doch noch nicht ganz gelöst!
08.01.2008 11:54:00
Joachim
Habe mich zu früh gefreut, bzw die Lösung ist auf jeden Fall ok!
Eine weitere Rahmenbedingung hatte ich noch nicht angemerkt:
Wenn die Formel in der selben Spalte wie die Beträge steht, gibt es einen Zirkelbezug!!
Userbild
Hast jmd noch eine Idee, wie man das Problem lösen kann?

Zirkel
08.01.2008 13:47:00
heikoS
Hallo Joachim,
die Formel steht in der Zelle c15, ja? Nun dann ist das ja auch nicht weiter verwunderlich, daß Dir Excel den Hinweis auf einen Zirkelbezug ausgibt. Ändere doch einfach ´mal den Bereich ab, so daß die Zelle mit der Formel nicht mehr Bestandteil eines der Bereiche der Formel ist. Dann funktioniert´s auch.
Klappt´s?
Gruß Heiko

Anzeige
AW: Zirkel
08.01.2008 14:49:15
Joachim
Ok, das ist durchaus eine Lösungsmöglichkeit.
Hilft mir aber nicht weiter, da die Ergebniszellen immer mittendrin stehen.
(Habe ich wohl nicht aureichend erklärt)
Nochmals ein angepasstes Beispiel:
Hinweis: Weiterhin muss man sich vorstellen, dass es ganz viele Zeilen gibt mit bis zu 4 Stufen (Hierachien)und auch sehr viele Spalten nach dem Muster C.
Spalte A soll die Struktur festlegen, aus welcher Zeile die Werte der jeweiligen Spalte zu nehmen sind.
Userbild
... Evtl doch mit einer eigenen Funktion oder hat jmd eine Idee, wie man so etwas anders lösen kann?

Anzeige
Was für ein Gemuggel!
08.01.2008 15:19:00
heikoS
Hallo Joachim,
<Kopfschüttelmodus>
und das kriegst Du in der Form als download aus Eurem ERP, oder wo kommt das her?
Am Grad der Einrückung innerhalb der Zellen der Spalte A ist also die Hierarchieebene ablesbar?
</Kopfschüttelmodus>
Du solltest Dir zum Thema Listen (Tabellen) den Artikel von Peter Haserodt ´mal anschauen.
Das, was Du erreichen möchtest, würde ich mit der Funktion teilergebnis() lösen. Ich gehe davon aus, daß Du unterschiedlich große Bereiche addieren mußt/willst. Entweder machst Du das mit der Hand am Arm oder Du schaffst Dir (temporäre) Hilfsspalten in denen Du die Hierarchieebenen eindeutig beschreibst (1, 1.1, 1.2, 1.2.1, ...) und kannst diese Spalten dann mit dem Teilergebnis-Assi auswerten.
Viel Freude damit.
Gruß Heiko

Anzeige
AW: Was für ein Gemuggel!- Stimmt leider !
08.01.2008 17:41:00
Joachim
Hallo,
in der Tat habe ich auch schon öfter der Kopf geschüttelt.
Hinweis: In Spalte B ist die Hierachiestufe eingetragen (dies ist mein Ziel, bevor es in zig Formeln verschwindet)
Ich optimiere zur Zeit eine riesige Arbeitsmappe (Controllingtabelle mit vielen Kostenarten), in der eine Tabelle mit ca 1500 Zeilen und ca. 30 Spalten in der dargestellten Form strukturiert ist. Hier wurden jedoch alle Verknüpfungen/Berechnungen bereits manuell eingefügt.
Ich hege ernsthafte Bedenken bei Änderungen und suche deshalb nach Formeln, die zumindest die Fehlerträchtigkeit reduzieren (deshalb dieser Thread)
Hilfsspalten bringen mir hier nichts, denn die müsste ich nach jeder jetzigen Spalte einfügen und würde mal so eben das Sheet um 100 Spalten aufblähen.
Leider kann ich Teilsummen auch nicht nehmen, da es auch Zeilen gibt, die mir das Ergebnis kaputt machen
Irgendeine Lösung (nicht manuell) muss es doch geben !
Grüße
Joachim
PS
ThanX für den Link

Anzeige
AW: Bedingte Summierung anhand von Werten aus Liste
09.01.2008 19:10:35
Werten
Hallo,
habe mir jetzt ein Makro gebastelt, das mein Problem weitestgehend löst:
Function BedingteSumme(RaQuelle As Range, RaWerte As Range, RaVergleich As Variant) As Long ErgebnisSumme = 0 For idxQuelle = 1 To RaQuelle.Count For Each Vergleichswert In RaVergleich If Trim(Vergleichswert) = Trim(RaQuelle(idxQuelle).Text) Then ErgebnisSumme = ErgebnisSumme + RaWerte(idxQuelle).Value Exit For End If Next Next BedingteSumme = ErgebnisSumme End Function


Der Aufruf erfolgt folgendermaßen:
=BedingteSumme(B11:B22;C11:C22;{"111";"121";"300"})
Als nächsten Schritt möchte ich die ArrayWerte aber in einer Zelle haben und mit der Funktion nur darauf verweisen. Wie mache ich so etwas?
Ziel:
=BedingteSumme(B11:B22;C11:C22;H18)
und in Zelle H18 sollen dann die Werte 111, 121 und 300 (oder mehr) stehen!
Evtl hat jmd noch eine Idee wie man die obige Funktion performanter machen kann.
ThanX vorab

Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige