Microsoft Excel

Herbers Excel/VBA-Archiv

wenn formel mit vergleich des Datums | Herbers Excel-Forum


Betrifft: wenn formel mit vergleich des Datums von: Alexander
Geschrieben am: 01.01.2012 22:33:57

Hallo,

ich habe einige Formeln, die ich nun erweitern möchte.
Sinn der Erweiterung ist die Erkennung der Jahreszahl, damit die Formel ausschließlich bei Einträgen in angegebenen Jahr funktioniert.
Die Angabe des Jahres ist in Feld B2 und wird mit 01.01.2012 eingegeben und mit der Formatierung als reine Jahreszahl 2012 angegeben.
Nun habe ich in Spalte A zu jedem Eintrag das Datum stehen.
Jetzt habe ich z. B. folgende Formel die ich erweitern möchte: =normalsumme(INDIREKT("N"&$O9):INDIREKT("N"&$P9))
in O9 wird der Anfangswert wiedergegeben und in P9 der Endwert für den Bereich um den es zu addieren geht. Ich würde gerne so eine Formel daraus machen, die in etwa so lautet:
=wenn((INDIREKT("N"&$O9):INDIREKT("N"&$P9))=selbes Jahr wiedergegeben in B2; normalsumme(INDIREKT("N"&$O9):INDIREKT("N"&$P9));0)

Grüße

Alex

  

Betrifft: AW: wenn formel mit vergleich des Datums von: Josef Ehrensberger
Geschrieben am: 01.01.2012 22:46:58


Hallo Alex,

was ist "normalsumme"?

Ich glaube, das lässt sich mit SUMMENPRODUKT() lösen.

Eine Beispieltabelle (mit Erklärung) wäre sicher hilfreich.




« Gruß Sepp »



  

Betrifft: AW: wenn formel mit vergleich des Datums von: Alexander
Geschrieben am: 01.01.2012 23:14:52

Normalsumme ist irgendwas mit VBA (wo ist eigentlich in der 2007er Version dieser Visual Basic Editor?) die mir das Forum erstellt hat.
Es geht hier um eine klassische Summenformel die aber ausgelegt ist auf die Formatierung der Zelle.
So habe ich auch Fettsumme oder Kursivsumme oder Fettkursivsumme.

Für eine Beispieltabelle muß ich erst etwas zusammenfügen, ich weiß allerdings nicht ob das dann funktioniert da es mittlerweile so eine komplexe Datei geworden ist.

Ich hoffe mir kann ersteinmal so geholfen werden.


  

Betrifft: AW: wenn formel mit vergleich des Datums von: fcs
Geschrieben am: 02.01.2012 10:40:06

Hallo Alex,

dein Berechnungsproblem kann man mit der Funktion SUMMENPRODUKT lösen, also ohne benutzerdefinierte VBA-Funktion.
Tabelle2

 BC
201.01.2012134

Formeln der Tabelle
ZelleFormel
C2=SUMMENPRODUKT((JAHR(INDIREKT("A"&$O9):INDIREKT("A"&$P9))=JAHR($B$2))*INDIREKT("N"&$O9):INDIREKT("N"&$P9))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4

Unter Excel 2007 ist der VBA-Editor da wo er in Excel 2003 auch ist.
Er kann mit der Tastenkombination Alt+F11 angezeigt werden.

Zusätzlich solltest du dir ggf. zusätzlich via Excel-Optionen das Register "Entwicklertools" in der Menüleiste einblenden. Dann hast du auch via Mausklicks Zugriff auf die entsprechenden Fuktionen.


Gruß
Franz


  

Betrifft: AW: wenn formel mit vergleich des Datums von: Alexander
Geschrieben am: 02.01.2012 13:52:59

Hallo Franz,

vielen Dank ersteinmal. Jedoch ist mein Problem die Normalsumme. Mit Deiner Formel werden alle Beträge addiert, auch die die in Kursiv oder Fett, etc. geschrieben sind.

Aber vielleicht kann man die VBA Module auch auf SUMMENPRODUKT erweitern. NORMALSUMMENPRODUKT, etc.

Allerdings habe ich keine Ahnung von VBA: Hier mal Modul 1 für NORMALSUMME:

Function NormalSumme(Bereich As Range) As Double
'Quelle: Alois Eckl
Dim zelle As Range
    Application.Volatile
    For Each zelle In Bereich
      If zelle.Font.Bold = False And _
        zelle.Font.Italic = False Then
        NormalSumme = NormalSumme + zelle.Value
      End If
    Next zelle
End Function
Grüße

Alex


  

Betrifft: AW: wenn formel mit vergleich des Datums von: fcs
Geschrieben am: 03.01.2012 01:30:33

Hallo Alex,

deine benutzerdefinierte Funktion, die Zellenformate für die Summenbildung auswertet, kann man um die Prüfung des Datums in Spalte A ergänzen.

Die Formel sieht dann wie folgt aus. Durch die Auswertung in der Funktion reicht es aus, wenn als Bereich für die zu vergleichenden Datumswerte eine einzelne Zelle in Spalte A gewählt wird.

Tabelle2

 D
279
379

Formeln der Tabelle
ZelleFormel
D2=NormalSummeJahr(INDIREKT("N" & $O9 & ":N" & $P9); INDIREKT("A" & $O9 & ":A" & $P9); JAHR(B2))
D3=NormalSummeJahr(INDIREKT("N" & $O9 & ":N" & $P9); A4; JAHR(B2))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4

Gruß
Franz
Function NormalSummeJahr(Bereich As Range, BereichDatum As Range, Jahr As Long) As Double
'Quelle: Alois Eckl - modifiziert von fcs
Dim zelle As Range
    Application.Volatile
    For Each zelle In Bereich
      If zelle.Font.Bold = False And _
        zelle.Font.Italic = False Then
        If Year(zelle.Offset(0, BereichDatum.Column - Bereich.Column).Value) = Jahr Then
          NormalSummeJahr = NormalSummeJahr + zelle.Value
        End If
      End If
    Next zelle
End Function



  

Betrifft: AW: wenn formel mit vergleich des Datums von: Alexander
Geschrieben am: 03.01.2012 15:09:17

Hallo Franz,

vielen Dank für die Erweiterung. Allerdings bin ich mir nicht sicher ob das Ursprungsmodul noch funktionieren würde, also habe ich einfach ein neues Modul erstellt.
Die Formel funktioniert auch, zumindest die erste, zweite habe ich nicht angewendet, weil ich ja dann eine Zelle festlegen muss, da sie variabel sind, scheint mir dir erste Formel für meine Zwecke besser zu sein.

Doch weiß ich nicht ob die Formel wirklich zum Einsatz kommt, denn ich kann sie nicht ganz nachvollziehen, ja sie funktioniert aber ich verstehe sie diesmal nicht ganz oder noch nicht.

Mir hat bei meinen Problem wohl eine andere Lösung vorgeschwebt, deswegen tue ich mich da schwer. Scheint aber keine andere Lösung zu geben.
Ich habe eine Zeile von 8 Formeln nebeneinander, die alle auf die Basis des Vergleiches des Jahres in B2 umgeändert werden müssten. Aber bei den 8 Formeln handelt es sich nicht immer um den Befehl SUMME, sondern auch WENN und einfach nur ISTGLEICH, diese Formeln müssten so auf eine andere Art und Weise als wie mit Deiner Lösung verändert werden und somit macht es sich für mich schwerer mit Deiner Lösung klar zu kommen. Ich dachte es gibt einfach einen Befehl wie VERGLEICH.

Grüße

Alex



  

Betrifft: AW: wenn formel mit vergleich des Datums von: fcs
Geschrieben am: 03.01.2012 15:26:18

Hallo Alex,

normalerweise ist es kein Problem mehrere benutzerdefinierte Funktionen in einem Modul zu erstellen.

Das Grundübel deiner Tabellenauswertungen ist, dass du Zell-Formatierungen in den Berechnungen auswerten möchtest - warum auch immer. Dadurch kannst du nicht mit den Standardfunktionen wie SUMMEWENN, SUMMENPRODUKT etc. arbeiten.

Einfacher wäre es, wenn du in einer Hilfsspalte die Zeilen kennzeichnen würdest, die bei bestimmten Summierungen berücksichtigt werden sollen, dann gehen die Auswertungen mit Standard-Tabellenfunktionen.

Gruß
Franz


Beiträge aus den Excel-Beispielen zum Thema "wenn formel mit vergleich des Datums"