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

DBSumme - spannende Frage....

DBSumme - spannende Frage....
06.02.2007 13:42:02
Axel
Hallo,
Ich habe da mal eine spannende Frage an die Excel Pro's...
Ich versuche mit der "Datenbank summe" formel DBSUM() (habe eine Englische Excel version) folgendes Problem zu loesen:
Ich ghabe eine Tabelle mit folgenden Umsatzzahlen pro Product und Land:
Product Land Umsatz
x1 Deutschland 10
x2 Deutschland 15
x1 England 12
x3 Deutschland 30
x4 Belgien 5
x3 England 10
x5 England 20
x4 Deutschland 33
x4 England 24
x2 Belgien 15
x1 Belgien 11
x3 Belgien 10
Ich moechte den Umsatz ermitteln mit der DSUM formel fuer alle Produkte die in folgendem Text enthalten sind: "/x1/x4/x3/"
Wichtig ist dabei, keine anderen Hilfsformeln zun erstellen, d.h. eine Loesung zu finden, die in dem Vergleichskriterium sotwas wie "Produkt = In("/x1/x4/x3/")" sagt.
Ist das moeglich?
Bin fuer jede Hilfe dankbar.
Gruss,
Axel

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

Betreff
Datum
Anwender
Anzeige
AW: DBSumme - spannende Frage....
06.02.2007 13:59:26
Rudi
Hallo,
du musst doch nur eine entsprechende Filterliste erstellen.
Product
x1
x4
x3
=dbsum(Datenbank,"Umsatz",Tabelle2!A1:A4)
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
SUMMENPRODUKT - MTRANS
06.02.2007 14:04:25
Beate
Hallo Axel,
 ABCDEF
1ProductLandUmsatz ProductUmsatz
2x1Deutschland10 x1155
3x2Deutschland15 x3 
4x1England12 x4 
5x3Deutschland30   
6x4Belgien5   
7x3England10   
8x5England20   
9x4Deutschland33   
10x4England24   
11x2Belgien15   
12x1Belgien11   
13x3Belgien20   
14      
15Siehe:     
16http://www.online-excel.de/excel/singsel.php?f=124#s2   

Formeln der Tabelle
ZelleFormel
F2{=SUMPRODUCT((A2:A13=TRANSPOSE(E2:E4))*C2:C13)}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen

Gruß,
Beate
Anzeige
AW: SUMMENPRODUKT - MTRANS
06.02.2007 14:29:50
Axel
Danke Beate, auch eine gute Loesung, aber Matrix Formeln sind sehr langsam und speicherintensiv im Vergleich zur DSUM() Formel - insbesondere bei grossen datenmengen und vielen Kriterien.
Ich habe schon mal gesehen, das im Kriterium der DSUM eine Formel verwendet wurde die "TRUE" oder "FALSE" zurueck gibt. DSUM nimmt dann nure den "TRUE" Fall.
Gruss,
Axel
AW: DBSumme - spannende Frage....
06.02.2007 14:06:53
Axel
Dank fuer die Antwort (so mach ich das ueblicherweise auch, aber.....
Wenn du mehr Kriterien dazu addierst, wird die Filterliste sehr lang.
Product Land
x1 Deutschland
x3 Deutschland
x4 Deutschland
x1 England
x3 England
x4 England
Deshalb such ich eine Loesung die z.B. mein Produkt in meinem Textstring sucht.
Gruss,
Axel
Anzeige
AW: DBSumme - spannende Frage....
06.02.2007 14:35:51
Axel
Hier das Beispiel von "Bill":
http://office.microsoft.com/en-us/excel/HP052090691033.aspx#Example7
wenn das Kriterium als Formel Resultat eingegeben wird.
Criteria created as the result of a formula
You can use a calculated value that is the result of a formula (formula: A sequence of values, cell references, names, functions, or operators in a cell that together produce a new value. A formula always begins with an equal sign (=).) as your criterion. Remember the following important points:
The formula must evaluate to TRUE or FALSE.
Because you are using a formula, enter the formula as you normally would, and do not type the expression in the following way:
=''=entry''
Do not use a column label for criteria labels; either keep the criteria labels blank or use a label that is not a column label in the range (in the examples below, Calculated Average and Exact Match).
If you use a column label in the formula instead of a relative cell reference or a range name, Excel displays an error value such as #NAME? or #VALUE! in the cell that contains the criterion. You can ignore this error because it does not affect how the range is filtered.
The formula that you use for criteria must use a relative reference (relative reference: In a formula, the address of a cell based on the relative position of the cell that contains the formula and the cell referred to. If you copy the formula, the reference automatically adjusts. A relative reference takes the form A1.) to refer to the corresponding cell in the first row (in the examples below, C7 and A7).
All other references in the formula must be absolute references (absolute cell reference: In a formula, the exact address of a cell, regardless of the position of the cell that contains the formula. An absolute cell reference takes the form $A$1.).
The following subsections provide specific examples of criteria created as the result of a formula.
Top of Page
Also falls jemand eine Loesung weiss, waere super!
Gruss,
Axel
Anzeige
Echt, spannende Frage....
07.02.2007 23:04:59
Horst
...und wie gehts nun weiter?
mfg Horst
AW: PROSIT! Echt, spannende Frage....
10.02.2007 15:00:23
Axel
Hier die Antwort / Loesung fuer die die es interessiert in diesem Forum.....
Wie schon ueber den Microsoftartikel angegeben, akzeptiert DSUM() eine Formel als Kriterium, wenn die Formel einen Boolean returnvalue gibt ("True" oder "False").
Dies geht zum Beispiel mit the EXACT() Formel. Da ich nach der suche einer Art "InListe" order "InText" formel war und es diese nicht mit "boolean return" gibt, habe ich die einfach mal als UDF (User defined Function) definiert und in meine DSUM() als Kriterium eingespeist.... PROSIT es klappt!
Somit kann man der DSUM() Formel ein sehr flexibles "oder" Kriterium einspeisen, insbesondere wenn man mehrere Dimension abfragt.
Ich finde das im Prinzip schon "sensationel", nur leider verliert unsere gute alte DSUM() an der ueblichen Performance.....
'*********************************************************

Function InSlashString(DBStartCell As String, SlashList As String) As Boolean
If (SlashList Like "*/" & DBStartCell & "/*") Then InSlashString = True Else InSlashString = False
End Function


Function InList(DBStartCell As String, CompareList As Range) As Boolean
Set MyRange = CompareList
InList = False
For Each cell In CompareList.Cells
If (DBStartCell Like cell) Then
InList = True
Exit Function
End If
Next
End Function

'************************************
Ich habe ein Beispiel als XLS datei angefuegt:
https://www.herber.de/bbs/user/40307.xls
Dies ist zwar die Loesung zu meiner urspuenglichen Frage, nur da die Performance zu wuenschen uebrig laesst, muss es da doch noch etwas anderes geben (ausser diesen crazy shift+ctrl+enter array Formeln)?
Weiss jemand ob man den Kriteriumparameter "Arg3" als Array uebergeben kann, wenn die DSUM in VBA benutzt wird....
Application.WorksheetFunction.DSum(Arg1, Arg2, Arg3)
Schoenes Wochenende,
Axel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige