Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Excel-Funktion MAX, MIN, ...
zurück: Verknüpfte Tabellen in Front-/Backend prüfen/aktualisieren weiter: Existenz von Objekten Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Tutorial Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
rita2008
Im Profil kannst Du frei den Rang ändern


Verfasst am:
28. Jun 2005, 12:11
Rufname:
Wohnort: Berlin

Excel-Funktion MAX, MIN, ... - Excel-Funktion MAX, MIN, ...

Nach oben
       

Code:
Public Function fMaximum(ByVal x As Integer, ParamArray y())
    Dim i As Integer
    Dim max As Integer

    max = x
    For i = LBound(y) To UBound(y)
        max = IIf(max < y(i), y(i), max)
    Next
    fMaximum = max
End Function

Analog kann man auch das Minimum beliebig vieler Zahlen ermitteln.
Willi Wipp
Moderator


Verfasst am:
28. Jun 2005, 15:01
Rufname:
Wohnort: Raum Wiesbaden


Re: Excel-Funktion MAX, MIN, ... - Re: Excel-Funktion MAX, MIN, ...

Nach oben
       

Hi rita2008,

schoene Idee, auf ParamArray() waere ich jetzt nicht gekommen.
Damit laesst sich ja auch eine andere Anfrage (MEDIAN) beantworten.
Code:
Option Compare Database
Option Explicit

'ACHTUNG: Parameter muessen bereits sortiert uebergeben werden!
Public Function FnvMEDIAN(ByVal vZahl1 As Variant, ParamArray vZahln()) _
                         As Variant
    Dim lAnzahl As Long
    Dim vMin    As Variant
   
    lAnzahl& = UBound(vZahln) - LBound(vZahln) + 2
                                               '+ 2 wegen vZahl1! & UBound = 0
    Select Case lAnzahl&
      Case 1
        FnvMEDIAN = Nz(vZahl1, 0)
      Case 2
        FnvMEDIAN = (Nz(vZahl1, 0) + Nz(vZahln(0), 0)) / 2
      Case Else
        If lAnzahl& = (lAnzahl& \ 2) * 2 Then                  'Gerade Anzahl?
            FnvMEDIAN = (Nz(vZahln((lAnzahl& \ 2) - 2), 0) + _
                         Nz(vZahln((lAnzahl& \ 2) - 1), 0)) / 2
          Else                                                'Ungerade Anzahl
            FnvMEDIAN = Nz(vZahln(((lAnzahl& + 1) \ 2) - 2), 0)
                                               '- 2 wegen vZahl1! & UBound = 0
        End If
    End Select
End Function
'Zum Testen im Direktfenster (Strg+G; Testfenster)
'?FnvMEDIAN(0,1,2,3,4,5,6,7,8)
' => 4
'?FnvMEDIAN(0,1,2,3,4,5,6,7,8,9)
' => 4,5

Public Function FnvMAX(ByVal vZahl1 As Variant, ParamArray vZahln()) _
                      As Variant
    Dim l       As Long
    Dim vMax    As Variant

    vMax = vZahl1
    For l& = LBound(vZahln) To UBound(vZahln)
        If Not IsNull(vZahln(l&)) Then
            If IsNull(vMax) Or vMax < vZahln(l&) Then
                vMax = vZahln(l&)
            End If
        End If
    Next l&
    FnvMAX = vMax
End Function
'Zum Testen im Direktfenster (Strg+G; Testfenster)
'?FnvMAX(0,1,2,3,4,3,2,1,0)
' => 4

Public Function FnvMIN(ByVal vZahl1 As Variant, ParamArray vZahln()) _
                      As Variant
    Dim l       As Long
    Dim vMin    As Variant

    vMin = vZahl1
    For l& = LBound(vZahln) To UBound(vZahln)
        If Not IsNull(vZahln(l&)) Then
            If IsNull(vMin) Or vMin > vZahln(l&) Then
                vMin = vZahln(l&)
            End If
        End If
    Next l&
    FnvMIN = vMin
End Function
'Zum Testen im Direktfenster (Strg+G; Testfenster)
'?FnvMIN(4,3,2,1,0,1,2,3,4)
' => 0
Habe den Titel mal etwas abgeaendert, ich hoffe das ist OK?
_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Gast



Verfasst am:
18. Sep 2005, 08:41
Rufname:

AW: Excel-Funktion MAX, MIN, ... - AW: Excel-Funktion MAX, MIN, ...

Nach oben
       

Und da meistens Excel installiert ist und auch bessere u.a. Statistik - Funktionen besitzt gilt das auch für andere Excelfunktionen

Man muss das Fahrrad nicht nochmal erfinden

Falls Excel vorhanden ist, kann man die Excel-Tabellenfunktion Round verwenden (entspricht nicht der gleichnamigen VBA-Funktion).
Günther Ritter hat folgendes geschrieben:
Man nehme:
Ein Modul, und Häkchen unter Extras.Verweise auf die EXCEL X.0 Library.
Beispiel Funktion für Runden:
Code:
Function RundZahl(a,b)
    RundZahl = Excel.Application.Round(a, b)
End Function
rita2008
Im Profil kannst Du frei den Rang ändern


Verfasst am:
19. Sep 2005, 10:06
Rufname:
Wohnort: Berlin

AW: Excel-Funktion MAX, MIN, ... - AW: Excel-Funktion MAX, MIN, ...

Nach oben
       

Die Beispiele sind als Antwort auf eine Frage entstanden, wie man z.B. das Maximum mehrerer Zahlen ohne Excel berechnen kann. Siehe

Max-Funktion in VBA

mfg Rita

_________________
mfg Rita

Antworten bitte hier im Forum, nicht als private Nachricht. Danke
Willi Wipp
Moderator


Verfasst am:
02. Feb 2007, 11:52
Rufname:
Wohnort: Raum Wiesbaden

Re: Excel-Funktion MAX, MIN, ... (II) - Re: Excel-Funktion MAX, MIN, ... (II)

Nach oben
       

Nachfragen zum Thema bitte hier Excel-Funktion MAX, MIN, ... Nachgefragt stellen.

Hi Folks,

und hier der Ansatz fuer den Groessten gemeinsamen Teiler (GGT)
Code:
Option Compare Database
Option Explicit

Public Function FnlngGGT(ByVal lngZahl1 As Long, ByVal lngZahl2 As Long) _
                        As Long
    Dim tmp As Long
   
    If lngZahl1 = 0 Or lngZahl2 = 0 Then
        FnlngGGT = 0
      Else
        Do
            ' vertauschen damit lngZahl1 >= lngZahl2
            If lngZahl1 < lngZahl2 Then
                tmp = lngZahl1
                lngZahl1 = lngZahl2
                lngZahl2 = tmp
            End If
            ' take the modulo
            lngZahl1 = lngZahl1 Mod lngZahl2
        Loop While lngZahl1
        FnlngGGT = lngZahl2
    End If
End Function

Public Function FnvarGGTn(ByVal varZahl1 As Variant, _
                          ParamArray varZahln() As Variant) As Variant
    Dim lngI    As Long
    Dim lngGGT  As Long
   
    If Not IsNumeric(varZahl1) Or Nz(varZahl1, 0) = 0 Then
        lngGGT = 0
      Else
        lngGGT = varZahl1
        For lngI = LBound(varZahln) To UBound(varZahln)
            If Not IsNumeric(varZahln(lngI)) Or Nz(varZahln(lngI), 0) = 0 Then
                lngGGT = 0
              Else
                lngGGT = FnlngGGT(lngGGT, varZahln(lngI))
            End If
            If lngGGT <= 1 Then Exit For
        Next lngI
    End If
    FnvarGGTn = lngGGT
End Function

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Willi Wipp
Moderator


Verfasst am:
19. März 2007, 16:14
Rufname:
Wohnort: Raum Wiesbaden

Re: Excel-Funktion MAX, MIN, ... (III) - Re: Excel-Funktion MAX, MIN, ... (III)

Nach oben
       

Hi Folks,

und hier der Ansatz fuer die Bildung des Mittelwertes und der Summe ueber mehrere Werte
Code:
Option Compare Database
Option Explicit

Public Function FnvarGetMittelwert(ByVal varZahl1 As Variant, _
                                   ParamArray varfZahln()) As Variant
'Werte die 0 oder Null enthalten werden nicht beruecksichtigt!
    Dim lngI        As Long
    Dim lngAnzahl   As Long
    Dim varSumme    As Variant
   
    If Nz(varZahl1, 0) <> 0 Then
        varSumme = varZahl1
        lngAnzahl = 1
      Else
        varSumme = 0
        lngAnzahl = 0
    End If
    For lngI = LBound(varfZahln) To UBound(varfZahln)
        If Nz(varfZahln(lngI), 0) <> 0 Then
            varSumme = varSumme + varfZahln(lngI)
            lngAnzahl = lngAnzahl + 1
        End If
    Next lngI
    If lngAnzahl > 0 Then
        FnvarGetMittelwert = varSumme / lngAnzahl
      Else
        FnvarGetMittelwert = Null
    End If
End Function
'Zum Testen im Direktfenster (Strg+G; Testfenster)
'?FnvarGetMittelwert(1,null,2,0,3)
' => 2
'?FnvarGetMittelwert(1.1,1.2,1.3)
' => 1,2

Public Function FnvarGetSumme(ByVal varZahl1 As Variant, _
                              ParamArray varfZahln()) As Variant
'Werte die 0 oder Null enthalten werden nicht beruecksichtigt!
    Dim lngI        As Long
    Dim lngAnzahl   As Long
    Dim varSumme    As Variant
   
    If IsNumeric(varZahl1) Then
        varSumme = varZahl1
        lngAnzahl = 1
      Else
        varSumme = 0
        lngAnzahl = 0
    End If
    For lngI = LBound(varfZahln) To UBound(varfZahln)
        If IsNumeric(varfZahln(lngI)) Then
            varSumme = varSumme + varfZahln(lngI)
            lngAnzahl = lngAnzahl + 1
        End If
    Next lngI
    If lngAnzahl > 0 Then
        FnvarGetSumme = varSumme
      Else
        FnvarGetSumme = Null
    End If
End Function
'Zum Testen im Direktfenster (Strg+G; Testfenster)
'?FnvarGetSumme(1,null,2,0,3)
' => 6
'?FnvarGetSumme(1.1,1.2,1.3)
' => 3,6

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Tom2002
Der einzig Wahre Leuchtturm - Pilsum


Verfasst am:
22. März 2007, 13:34
Rufname:
Wohnort: Düsseldorf

AW: Excel-Funktion MAX, MIN, ... - AW: Excel-Funktion MAX, MIN, ...

Nach oben
       

Moin,

für den GGT und KGV schaut auch mal hier vorbei: DBWiki - KGV / GGT ermitteln

Ciao

Tom

_________________
Win7, Win2008 R2, Office 2010 Prof

Wer mit Fortuna Düsseldorf groß geworden ist, der fürchtet sich auch vor Access nicht.
Die Nutzlosigkeit des Daseins anzuerkennen heisst, Fortuna-Fan zu sein.
rita2008
Im Profil kannst Du frei den Rang ändern


Verfasst am:
04. Jul 2007, 18:11
Rufname:
Wohnort: Berlin


AW: Excel-Funktion MAX, MIN, ... - AW: Excel-Funktion MAX, MIN, ...

Nach oben
       

Wie gerade unter Nach berechnten Feldern sortieren festgestellt wurde, ist es noch günstiger, mit der Nz-Funktion zu arbeiten, also z.B. für Maximum
Code:
    max = IIf(max < Nz(y(i),0),Nz( y(i),0), max)
Dann funktionieren die Funktionen auch, wenn mit NULL-Werten gerechnet wird.
_________________
mfg Rita

Antworten bitte hier im Forum, nicht als private Nachricht. Danke
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage trotz "MAX" mehrere Werte 12 thoka26 395 14. März 2012, 19:41
KlausMz Abfrage trotz "MAX" mehrere Werte
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage soll TOP/MAX 3 je Gruppe liefern. Nicht mehr! 2 Gast 412 13. Feb 2012, 12:02
Gast Abfrage soll TOP/MAX 3 je Gruppe liefern. Nicht mehr!
Keine neuen Beiträge Access Tabellen & Abfragen: max syntax 2 strolli 612 12. Okt 2011, 11:47
strolli max syntax
Keine neuen Beiträge Access Tabellen & Abfragen: MAX Periode in Microsoft Query 0 Cabomba 512 05. Okt 2011, 12:20
Cabomba MAX Periode in Microsoft Query
Keine neuen Beiträge Access Tabellen & Abfragen: Kriterium zwischen min([Datum]) und Datum() bringt Fehler 2 CA_Mo 497 17. Aug 2011, 16:22
CA_Mo Kriterium zwischen min([Datum]) und Datum() bringt Fehler
Keine neuen Beiträge Access Tabellen & Abfragen: Min / Max werte aus einer Tabelle 9 skorwi 1017 04. Feb 2011, 00:38
MiLie Min / Max werte aus einer Tabelle
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrageeigenschaft MAX DATENSÄTZE 5 rewelrider 933 04. Dez 2010, 13:28
rewelrider Abfrageeigenschaft MAX DATENSÄTZE
Keine neuen Beiträge Access Tabellen & Abfragen: Kürzel (min) an eine Zahl anhängen 2 Michael C 1322 18. Jul 2009, 17:09
Gast Kürzel (min) an eine Zahl anhängen
Keine neuen Beiträge Access Tabellen & Abfragen: Max(datum) falscher wert? 3 Tobi88 282 25. Jun 2009, 12:40
MAPWARE Max(datum) falscher wert?
Keine neuen Beiträge Access Tabellen & Abfragen: Vergleiche und Min Funktion 6 ZENN 293 09. Jun 2009, 17:49
MiLie Vergleiche und Min Funktion
Keine neuen Beiträge Access Tabellen & Abfragen: Wenn Betrag min dann Feld X 1 Gast 299 21. Feb 2009, 12:33
Marmeladenglas Wenn Betrag min dann Feld X
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage mit zwei Kriterien und Max() 1 Janni08 401 27. Jan 2009, 11:02
Janni08 Abfrage mit zwei Kriterien und Max()
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Excel Tricks