Autor
|
Thema: Formel für bedingte Summe gesucht (2759 mal gelesen)
|
Doc Snyder Ehrenmitglied V.I.P. h.c. Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13115 Registriert: 02.04.2004 Office 2007 W7-SP1
|
erstellt am: 28. Okt. 2009 15:26 <-- editieren / zitieren --> Unities abgeben:
Moin! Ich meine, ich hätte das schon mal gefragt, aber ich finde weder Aufzeichnungen bei mir darüber noch einen entsprechenden Thread hier, und mein Problem besteht nach wie vor. Vermutlich ist es auch eine sehr häufige Aufgabe, aber ich will sie auf eine ganz bestimmte Weise lösen. Gegeben ist eine Liste, ein Stundenprotokoll mit folgenden Spalten: h, Projektnummer, Beschreibung. Darin werden zeilenweise die geleisteten Arbeitspakete eingetragen, also z.B.: "4", "12345", "Entwurf". Es gibt verschiedene Projekte, über die Projektnummer wird jeder Eintrag zugeordnet und über diese Zuordnung soll der Gesamtaufwand auf die einzelnen Projekte verteilt summiert werden. Bislang summiere ich das so, dass für jedes Projekt eine Hilfsspalte nötig ist, in der mittels WENN jeweils 0 oder der eingetragene Stundenbetrag steht (s. Beispiel "...bisher"). Das finde ich aber total umständlich, die Tabelle ist dadurch überproportional ausgedehnt, und das Einfügen eines neuen Projektes oder einer neuen Zeile erfordert immer viel Aufmerksamkeit und Kopiererei. Vor allem werden es immer mehr Hilfsspalten. Ich will gar keine Hilfsspalten! Gibt es Funktionen für eine Formel, die diese bedingten Summen jeweils in eins ausdrückt? Dass ich also nur eine Formel (und zwar immer dieselbe) in jeder Zielzelle stehen habe, die sagt, dass nur die Einträge aus dem spezifizierten Bereich summiert werden sollen, neben denen dieselbe Projektnummer geschrieben steht wie neben der Formel selber? Beispiel "...Wunsch (Fake)" zeigt, wie es dann aussehen soll, aber da stehen jetzt halt nur die Ergebnisse und keine Formeln (Fake eben). ------------------ Roland www.Das-Entwicklungsbuero.de [Diese Nachricht wurde von Doc Snyder am 28. Okt. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 28. Okt. 2009 15:34 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
|
heiko_hems Mitglied Freier Architekt
Beiträge: 1295 Registriert: 14.01.2005
|
erstellt am: 28. Okt. 2009 15:41 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
Hallo Roland, zB in Zelle B2:
Code: =SUMMEWENN(C8:C19;C2;B8:B19)
Passt das so ?[Edit: Wow, war ich langsam.... - keine Chance gg. Rübe ] ------------------ Gruß Heiko "Es gibt kein richtiges Leben im falschen." - Theodor W. Adorno in Minima Moralia, 43 und das hat er gesagt lange bevor es SL, WOW, ETC gab ! [Diese Nachricht wurde von heiko_hems am 28. Okt. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Doc Snyder Ehrenmitglied V.I.P. h.c. Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13115 Registriert: 02.04.2004 Office 2007 W7-SP1
|
erstellt am: 28. Okt. 2009 15:57 <-- editieren / zitieren --> Unities abgeben:
Hallo runkelrübe, Danke! Dein erster Blick ist ja gut! Das tut genau das, was ich brauche. Mehr steckt nicht hinter meiner Frage. Und damit beim Kopieren der Formel in eine neue Projekt-Zeile der Quellbereich der Formel nicht verrutscht, habe ich noch eine Hand voll Dollar ausgegeben . Und dann habe ich noch den Quellbereich so groß gemacht, dass man getrost einen ganzen Monat lang jede Stunde für ein anderes Projekt arbeiten kann: =SUMMEWENN(C$8:C$256;C2;B$8:B$256) Folgefrage: Ich meine, es gäbe auch eine Methode, so eine Formel, die in verschiedenen Zellen gleichermaßen verwendet wird, nur ein Mal zu hinterlegen und dann in Art einer Subrotine oder Funktion von verschiedenen Zellen aus darauf zuzugreifen. Stimmt das? Und wenn ja, wie geht das? Dann bräuchte ich immer nur an einer Stelle zu kontrollieren, ob der Quellbereich richtig steht. Besser als all die Kontrollsummen sind mir klar definierte und eindeutige Zusammenhänge. ------------------ Roland www.Das-Entwicklungsbuero.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 28. Okt. 2009 16:18 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
Du redest von Namen? Beispiel: Projektnummer > bezieht sich auf =Juli!$C$8:$C$29 ProjektStunden > bezieht sich auf =Juli!$B$8:$B$29 Und dann könnte man die Formel auch noch schön kompliziert machen: =SUMMEWENN(Projektnummer;BEREICH.VERSCHIEBEN($B$2;ZEILE()-2;1);ProjektStunden) Da hast Du dann Deine Dollars wieder und es sieht schmuck aus Ist aber in diesem Fall eher in Richtung "überflüssiger Mumpel, den man aber mal gesehen haben sollte" einzuordnen das Bereich.verschieben, sorry, mir war grad so ;-) Dir wird ein =SUMMEWENN(Projektnummer;C2;ProjektStunden) reichen, wenn es das ist, was Du möchtest. Du kannst bei den Namen ja auch Formeln angeben: Beispiel: Hugo bezieht sich auf =SUMME(Juli!C2:C5) in die Zelle tippst Du nur noch =Hugo und es wird eben Summe(C2:C5) berechnet. Bei diesem Beispiel wenig sinnvoll, aber in anderen Anwendungsfällen kann sowas nützlich sein, vor allem, wenn die (Teil-)Formeln mal länger werden. War das verständlich und hat die Glaskugel auch diesmal funktioniert?
------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... System-Info | Excel -Suche | RuA-Suche | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
carsten-3m Mitglied Dipl.-Ing. Mbau (Produktmanagement, Patent- und Normwesen)
Beiträge: 950 Registriert: 08.05.2007 Excel 2010
|
erstellt am: 28. Okt. 2009 16:41 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
Auch mal Glaskugel beschworen: Die von Dir Roland verwendete Formel
Code: =SUMMEWENN(C$8:C$256;C2;B$8:B$256)
ist bereits jetzt brauchbar flexibel für Deine Anwendung. Ich habe mal 3 neue Projekte hinzugefügt und siehe da, trotz der fixierenden US-Währungssymbole passen sich die Suchbereiche ganz artig den neuen Gegebenheiten an, ganz so wie's sein sollte, und addieren die richtigen Stunden.Oder war was anderes gemeint? Man könnte sich natürlich (dazu neige ich gern, wenn mir der Excelformelkram zu kompliziert wird) auch in VBA eine Funktion schreiben, die dann ganz nach Bedarf (und Programmierkönnen) alles tut was das Herz, äh... der Projektplan begehrt. Angewendet würde diese wie eine Formel. ------------------ Seit Pro/E Version 1 dabei, auwei... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Doc Snyder Ehrenmitglied V.I.P. h.c. Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13115 Registriert: 02.04.2004 Office 2007 W7-SP1
|
erstellt am: 28. Okt. 2009 17:32 <-- editieren / zitieren --> Unities abgeben:
Bahnhof? Glaskugel scheint daneben zu liegen. ICH rede nicht von "Namen". Das meinte ich nicht. Komplizierter wollte ich es eigentlich nicht machen Und monatstabellenübergreifend will ich auch nicht rechnen. Erstmal jedenfalls. Ich meinte Folgendes: Da steht jetzt bei jedem Projekt die gleiche Formel, und falls ich daran noch mal was ändern wollen sollte, müsste ich die geänderte Formel wieder überall rein kopieren. Hier in dem Beispiel ist das noch harmlos, aber bei längeren Graphen von Messreihen und davon abgeleiteten Reihen müsste man eine neue Formel immer gleich in hunderte von Zellen kopieren. Würde das mit so einem "Hugo" besser gehen? Und würde das auch relational gehen? Also nicht "Hugo = Summe(C2:C5)" sondern "Hugo = Summe der beiden links benachbarten Zellen"?
------------------ Roland www.Das-Entwicklungsbuero.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Doc Snyder Ehrenmitglied V.I.P. h.c. Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13115 Registriert: 02.04.2004 Office 2007 W7-SP1
|
erstellt am: 28. Okt. 2009 17:51 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von carsten-3m: ...mal 3 neue Projekte hinzugefügt...
Ja, das kenne ich, das ist nicht das Problem. Solche Zellbezüge werden mit und ohne Dollarzeichen aktualisiert mitgeführt beim Verschieben der beteiligten Zellen und auch beim die Bezeichnung beeinflussenden Einfügen von Zeilen oder Spalten darüber oder davor. Ohne Dollarzeichen gibt es aber beim Kopieren der Formel eine relationale automatische Veränderung des bezogenen Bereiches, d.h. ohne Dollars würde das eine Zeile tiefer stehende Projekt auch unten eine Zeile tiefer mit der Summierung beginnen und eine Zeile tiefer aufhören. Bei dem Referenzeintrag "C2" ist das gewollt, der soll dann zu C3, C4 usw. werden, bei den Summierbereichen aber nicht. ------------------ Roland www.Das-Entwicklungsbuero.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 28. Okt. 2009 19:03 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
N'Abend Roland, OK, Du hast vielleicht bislang noch nicht von Namen geredet, aber ich tue es trotzdem nochmal ;-) Ich denke nämlich immer noch, dass Du damit was reißen könntest. Was die können, wie man sie erzeugt und anwendet ist Dir bekannt? Wenn nicht: HIER ist es nett beschrieben als Kurzeinführung in das Thema. Aus "Hugo = Summe der beiden links benachbarten Zellen" entsteht also (nach meiner Interpretation von links benachbart): MeineSumme bezieht sich auf =(SUMME(INDIREKT("ZS(-3)";0):INDIREKT("ZS(-1)";0))) Das sind jetzt die 3 Zellen in derselben Zeile links neben der Zelle, in der Du =MeineSumme schreibst, 3 damit das deutlicher wird, dass man Funktionen auch in Namen schachteln kann, bei 2 Zellen reicht ja ein einfaches "+" Auf Deine Ursprungsfrage zurückbezogen:
Code: Name bezieht sich aufPNr =Aug!$C$8:$C$19 PSt =Aug!$B$8:$B$19 StundeProjekt =SUMMEWENN(PNr;INDIREKT("ZS(1)";0);PSt)
Jetzt kannst Du =StundeProjekt in jede beliebige Zelle auf dem Blatt einfügen, solange rechts daneben die Projektnummer steht, wird die Stundenzahl dafür berechnet. Also meine Meinung: Ja, es geht mit Hugo einfacher, Du änderst die Formel zentral. Blattübergreifend willst Du ja zum Glück nicht Wenn Dich aber jemals das Bedürfnis danach überkommt, schau Dir das Thema Lokale und globale Namen http://www.online-excel.de/excel/singsel.php?f=157#s6 vorher an. Teste und berichte ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... System-Info | Excel -Suche | RuA-Suche | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Doc Snyder Ehrenmitglied V.I.P. h.c. Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13115 Registriert: 02.04.2004 Office 2007 W7-SP1
|
erstellt am: 28. Okt. 2009 20:25 <-- editieren / zitieren --> Unities abgeben:
|
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 28. Okt. 2009 23:23 <-- editieren / zitieren --> Unities abgeben: Nur für Doc Snyder
bezüglich schnell... ja, Rübe muss wohl direkt Stromschläge bekommen wenn jemand hier anklopft & da ja ich kein Freund von Wenn abfragen bin, hier die Summenproduktlösung ;-) Code: Name bezieht sich auf StundeProjekt = SUMMENPRODUKT((PNr=INDIREKT("ZS(1)";0))*PSt)
Rest wie bei Rübe und diesem ominösen Hugo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|