online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Michi676 vom 20.05.2022, 15:22 Options

Wenn das Min einer Zeile mehr als einmal vorkommt dann...

Hi Leute ich brauch mal eure Hilfe:
Ich hab folgende Tabelle:
a b c d e f
10 0 0 10 30 50
30 30 10 20 10 100
30 40 0 30 10 110
10 20 10 10 20 70
10 10 20 0 10 50

Spalte f ist die Summe der entsprechenden Zeile. Jetzt will ich, wenn das Min aus Spalte f mehr als einmal vorkommt, dass excel mir dann die Zelleneinträge, der beiden Min Zeilen, solange vergleicht, bis eine Abweichung vorkommt und dann soll mir excel die MinZeile zurückgeben, in der die Kleinere Zahl steht.
vielen Dank
Michi


Antwort schreiben

Antwort 1 von Saarbauer vom 21.05.2022, 12:00 Options

Hallo,

ist zumindest mit dem Beispel nicht machbar.

Minimum Zeile = 50 in Zeile 1 und 5
Minimum Spalte in Zeile 1 =0
Minimum Spalte in Zeile 5 = 0

kein gelungenes Beispiel, wird sowieso mit Formeln ganz schwierig.

Gruß

Helmut

Antwort 2 von Hajo_Zi vom 21.05.2022, 12:07 Options

Hallo Helmut,

in der Zeile sollte nicht das min. gescht werden sondern:
Zitat:

solange vergleicht, bis eine Abweichung vorkommt

Zu der Aussage mit Formel, stimme ich zu. Obwohl kein Formelmensch.

Gruß Hajo

Antwort 3 von nighty vom 21.05.2022, 12:19 Options

hi all ^^

also ich als formelnoob hab mich mal probiert :-))

=WENN(KKLEINSTE(D2:D4;1)<KKLEINSTE(D2:D4;2);KKLEINSTE(A2:C2;1);KKLEINSTE(A2:C2;2))

bin natuerlich ersteinmal gescheitert *grrr*

was in der formel nun noch fehlt ist bei den letzten beiden kkleinste einen zeilenindex des gefundenen fundes einzuarbeiten,jede wette das das geht :-)

koennte irgenwie ueber index gehen denke ich,fragt sich nur wie :-))

gruss nighty

Antwort 4 von nighty vom 22.05.2022, 07:28 Options

hi all ^^

huhu wo bleiben denn hier die formelfreaks,das glaube ich erstmal spontan nicht,das es dafuer keine loesung gibt,werd nachher erstmal eine benutzerefinierte function schreiben,erstmal als notloesung *grrrr*

gruss nighty

p.s.
*mir ist zur zeit wirklich nichts eingefallen um die profis aus der reserve zu locken grummel'

Antwort 5 von KJG17 vom 22.05.2022, 09:17 Options

Hallo Nighty,

vielleicht liegt es einfach daran, dass diese kleine Tabelle problemlos im Kopf 'analysiert' werden kann, eine dafür mit viel Aufwand geschaffene reine Formel-Lösung aber nicht auf eine größere Tabelle anwendbar ist. Es werden dann einfach zu viele Argumente, oder man müsste mit Hilfstabellen arbeiten um das zu umgehen.

Eventuell äußert sich Michi mal, für welche Größenordnung dass später funktionieren soll oder stellt eine entsprechende Mustertabelle zum Download bereit.

Gruß
Kalle

Antwort 6 von nighty vom 22.05.2022, 17:50 Options

hi all ^^

eine erste noch nicht zufriedenstellende variante

zur zeit nur auf doppelte von 2 treffern bezogen

gruss nighty

einzufuegen
alt+f11/allgemeinesmodul

die function ist nun unter function einfuegen benutzerdefiniert errreichbar

Function BereichKleinste(BereichWerte;BereichSummierung)

Function BereichKleinste(BrKl As Range, BrSu As Range) As Long
    Application.Volatile
    Dim Zelle As Range
    Dim Kl1 As Long, Kl2 As Long, Rk1 As Long, Rk2 As Long
    Kl1 = Rows.Count
    Kl2 = Rows.Count
    For Each Zelle In BrKl
        If Zelle.Value < Kl1 Or Zelle.Value = Kl1 Then
            Kl2 = Kl1
            Rk2 = Rk1
            Kl1 = Zelle.Value
            Rk1 = Zelle.Row
        End If
    Next Zelle
    For Each Zelle In BrSu
        If Zelle.Row = Rk1 And Zelle.Value < Kl1 Or Zelle.Row = Rk2 And Zelle.Value < Kl1 Then
            Kl1 = Zelle.Value
        End If
    Next Zelle
    BereichKleinste = Kl1
End Function  


ich werde noch eine dynamische trefferanzahl versuchen einzubauen :-)

Antwort 7 von nighty vom 25.05.2022, 21:28 Options

hi all ^^

nach einigen huerden,kam das dabei heraus :-))

gruss nighty

=BereichKleinste(BereichWerte;BereichSummierung)

Option Explicit

Function BereichKleinste(BrKl As Range, BrSu As Range) As Long
    Application.Volatile
    Dim Zelle As Range
    Dim IndexB As Long, SuchZelle As Long, Puffer As Long
    Dim KlWert() As Long
    Dim KlPos() As Long
    IndexB = 1
    Puffer = Rows.Count
    For Each Zelle In BrKl
        If Zelle.Value < Puffer Then
            Puffer = Zelle.Value
        End If
    Next Zelle
    For Each Zelle In BrKl
        If Zelle.Value = Puffer Then
            ReDim Preserve KlWert(1 To IndexB)
            ReDim Preserve KlPos(1 To IndexB)
            KlWert(IndexB) = Zelle.Value
            KlPos(IndexB) = Zelle.Row
            IndexB = IndexB + 1
        End If
    Next Zelle
    Puffer = Rows.Count
    For Each Zelle In BrSu
        For SuchZelle = 1 To IndexB - 1
            If Zelle.Row = KlPos(SuchZelle) And Zelle.Value < Puffer Then
                Puffer = Zelle.Value
            End If
        Next SuchZelle
    Next Zelle
    BereichKleinste = Puffer
End Function  

Ähnliche Themen

Zeile automatisch kopieren
Felix906  10.11.2008 - 37 Hits - 3 Antworten

Zeitstempel und nächste Zeile
ThoSaKi  04.12.2008 - 16 Hits - 1 Antwort

min in matrixformel
nighty  20.12.2008 - 55 Hits - 2 Antworten

Excel - Jede 5. Zeile eine neue Zeile einfügen
rodnick  04.08.2009 - 412 Hits - 4 Antworten

Excel Datei nur einmal öffnen.
Hermann57  06.10.2009 - 187 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026