Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
1032to1036
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

=_xlfn.SUMIFS(...) ?

=_xlfn.SUMIFS(...) ?
14.12.2008 10:13:00
Reinhard
Guten Morgen,
=_xlfn.SUMIFS(Liste!$J$2:$J$1898;Liste!$F$2:$F$1898;$B6;Liste!$C$2:$C$1898;C$4)
steht in einer Tabelle die wohl mit XL2007 erstellt wurde aber als normale xls abgespeichert wurde.
Mein XL2000 kann damit nix anfangen. Kann man die Funktion "_xlfn.SUMIFS" mit Vba nachbauen?
Wenn ja, wie?
Hat der Ersteller der Tabelle einfach nur durch Umkopieren in Windows aus der .xlsm eine .xls gemacht oder wenn man in XL2007 im alten XLS-Format abspeichert bleibt die Funktion "_xlfn.SUMIFS" erhalten?
Danke ^ Gruß
Reinhard

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: =_xlfn.SUMIFS(...) ?
14.12.2008 10:38:41
Reinhard
Hallo,
ich habe gegoogled und mir was gebastelt.

Function SUMIFS(Zählbereich, Krit1bereich, Krit1, krit2bereich, Krit2)
Dim Z
SUMIFS = 0
For Z = 1 To Zählbereich.Cells.Count
If Krit1bereich(Z) = Krit1 And krit2bereich(Z) = Krit2 Then
SUMIFS = SUMIFS + Zählbereich(Z)
End If
Next Z
End Function


Gruß
Reinhard

Problem mit SumPrroduct in Vba
14.12.2008 10:53:46
Reinhard
Hallo Wissende,
meine Funktion funktioniert, ist aber sehr langsam, nun wollte ich eine Formel aus excelformeln.de einsetzen, da kommt aber nur "#WERT!" bei z.B.
=Sumifs(Liste!$J$2:$J$1898;Liste!$F$2:$F$1898;$B6;Liste!$C$2:$C$1898;C$4)

Function SUMIFS(Zählbereich, Krit1bereich, Krit1, krit2bereich, Krit2)
'=SUMMENPRODUKT((A1:A100="x")*(B1:B100="y")*C1:C100)
SUMIFS = Application.SumProduct((Krit1bereich = Krit1) * (Krit1bereich = Krit1) * Zählbereich)
End Function


Hinweis, die Summenproduktfiormel ist keine Arrayformel.
Danke ^ Gruß
Reinhard

Anzeige
AW: =_xlfn.SUMIFS(...) ?
14.12.2008 10:42:24
Gerd
Hallo Reinhard,
das scheint eine benutzerdefinierte Funktion zu sein. Die musst im Code der Ursprungsdatei suchen oder den Ersteller fragen.
Gruß Gerd
AW: =_xlfn.SUMIFS(...) ?
14.12.2008 14:12:00
Reinhard
Hallo Gerd,
im Code ist nix und den Ersteller fragen ist so eine Sache.
Beim Googlen nach dem Ausdruck " _xlfn.SUMIFS" kriegt man schon Treffer, wie den von
http://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/Excel/Q_23738382.html
der hier nachfolgend steht. So wie mein Minimalenglisch mir die Sache darstellt, hat da jemand in XL2007 die Funktion "SUMIFS()" benutzt die es in anderen XL-Versionen nicht gibt.
Wenn er nun die Mappe im alten Format als xls abspeichert wird daraus " _xlfn.SUMIFS()" , so wie in der Mappe die ich erhielt.
Das würde ich gerne bestätigt haben von jmdn. von hier der XL2007 hat und im egensatz zu mir und dem Ersteller der mappe auch Ahnung :-)
Frage auf noch offen stellen geht nicht, bzw. sinnlos weil ich grad noch auf Erich antworten will.
*************************************************************************************
I have a budget worksheet that I need to keep a running total of expenses by comparing criteria from 2
different columns and then sum if those criteria are met.
For example, I want to know the fuel expense for the Shop (dept 60, Colum D) and Operations (Dept 70,
Column E). I want the total in D1 to reflect the sum of all costs in J13:J28 IF Account# is 12000 and Dept#
is 60. I wrote the formula successfully using Excel 2007, but that is because it has a "SUMIFS" (with an S)
to allow for multiple criteria to be considered. XP and earlier versions do not.
When I saved the worksheet, I had it saved as a 97-2007 file thinking it would convert properly when I
tried to use it here at work. It did not. I wrote it as follows:
=sumifs($J$13:$J$28,$G$13:$G$28,"=12020",$I$13:$I$28,"=60") and it worked in Excel 2007.
When I tried to open it at work, it had changed the formula to this:
_xlfn.SUMIFS($J$13:$J$28,$G$13:$G$28,"=12020",$I$13:$I$28,"=60")
Now, when you enter the account number, I get an error. Nothing works.
I would appreciate any help you can provide. I need to write it so that is will be compatible with XP and
other versions of Excel other than 2007. I have attached the worksheet for your review.
*************************************************************************************
Gruß
Reinhard
Anzeige
AW: SUMMEWENNS Downgrade möglich?
14.12.2008 15:14:33
Gerd
Hallo Reinhard,
ich nehme alles zurück u. behaupte das Gegenteil. :-)
Es gibt tatsächlich ein paar neue integrierte Excel-Funktionen in xl2007.
SUMMEWENNS ist dabei.
http://hajo-excel.de/2007_neue_funktionen.htm
Wegen deiner Handling-Frage zum Downgrade nach xl 2003 u. früher, für den ich eher "schwarz sehe",
stelle ich auf noch offen.
Gruß Gerd
AW: SUMMEWENNS Downgrade möglich?
14.12.2008 16:25:37
Reinhard
Hallo Gerd,
ich stelle auch auf noch offen, aber jetzt nur deshalb weil ich mir noch eine Bestätigung eines hiesigen XL2007 Besitzers erhoffe, daß es so ist, wenn man in XL2007 "SUMIFS" benutzt, dies dann im alten Format speichert und mit "altem" XL öffnet daraus dann "_xlfn.SUMIFS" wird.
Die "Hausaufgaben" der MS-Programmierer will/kann ich ja nicht machen. Vielleicht sollten sie sich das zauberbuch von excelformeln.de kaufen, hier mal Erich fragen oder sonstwas.
Ich sehe es aus meiner Laiensicht heraus als nicht so schwer lösbar an in XL2007 benutzte Formeln wie "SUMIFS" beim Abspeichern als alte Version in Formeln für alte Versionen umzuwandeln.
Okay, das dann wieder in "SUMIFS" umzuwandeln in XL2007 kann schwierig werden.
Naja, nicht mein problem :-)
Gruß
Reinhard
Anzeige
AW: SUMMEWENNS Downgrade möglich?
14.12.2008 19:15:32
Original
Hi,
"...ich stelle auch auf noch offen, aber jetzt nur deshalb weil ich mir noch eine Bestätigung eines hiesigen XL2007 Besitzers erhoffe, daß es so ist, wenn man in XL2007 "SUMIFS" benutzt, dies dann im alten Format speichert und mit "altem" XL öffnet daraus dann "_xlfn.SUMIFS" wird...."
Genau so ist es!
mfg Kurt
AW: SUMMEWENNS Downgrade möglich?
14.12.2008 21:15:00
Reinhard
Hallo Kurt,
danke dir, diese Bestätigung hat mir gefehlt.
Gruß
Reinhard
AW: =_xlfn.SUMIFS(...) ?
14.12.2008 12:34:00
Erich
Hi Reinhard,
so geht das mit SumProduct in VBA wohl nicht. Schau mal
https://www.herber.de/forum/archiv/680to684/t682601.htm
Alternativen mit Evaluate:

Function SUMIFS1(rngSum As Range, _
rngKr1 As Range, Krit1, _
rngKr2 As Range, Krit2) As Double
SUMIFS1 = Application.Evaluate("SUMPRODUCT((" & _
rngKr1.Address & "=""" & Krit1 & """)*(" & _
rngKr2.Address & "=" & Krit2 & ")*" & rngSum.Address & ")")
End Function
Function SUMIFS2(strSum As String, _
strKr1 As String, Krit1, _
strKr2 As String, Krit2) As Double
SUMIFS2 = Application.Evaluate("SUMPRODUCT((" & _
strKr1 & "=""" & Krit1 & """)*(" & _
strKr2 & "=" & Krit2 & ")*" & strSum & ")")
End Function
Sub tst()
MsgBox SUMIFS1(Range("C2:C6"), Range("A2:A6"), "A", Range("B2:B6"), 1)
MsgBox SUMIFS2("C2:C6", "A2:A6", "A", "B2:B6", 1)
End Sub

Allerdings sind die wie auch dein Versuch nicht universell:
Krit1 muss - da Zeichenkette - in Gänsefüße gwewickelt werden, Krit2 nicht.
(Könnte man wohl über weitere Parameter machen...)
Mappe zum Spielen: https://www.herber.de/bbs/user/57611.xls
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: =_xlfn.SUMIFS(...) ?
14.12.2008 14:31:00
Reinhard
Hallo Erich,
dankeschön, damit werde ich mal rumtesten.
Meine Funktion funktioniert, dauert aber locker geschätzte 5 min wenn in vielen Zellen , geschätzt 400, diese Formel steht und der jeweilige Kriterienbereich 1800 Zellen in einer Spalte umfasst.
Wenn ich mit deinen Hinweisen/lösungen nicht klarkomme melde ich mich wieder.
Auf diese Problematik mit diesem _xlfn.SUMIFS(...) kam ich ja nur als mir jmd. in einem anderen Forum im Zuge seiner Anfrage zu einem völlig anderen Problem eine Mappe schickte bzw. hochlud und ich halt in allen Zellen nur "#NAME!" sah.
Deshalb frug ich hier nach.
Hast du eigentlich XL2007 ? Dann schau bitte in meine Antwort zu Gerd.
Gruß
Reinhard
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige