Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Suche nach größtem (Gesamt-)Wert mit Bedingungen

Suche nach größtem (Gesamt-)Wert mit Bedingungen
25.01.2016 17:59:25
Nico
Hallo!
Ich habe folgendes Problem und hoffe auf eure Hilfe:
Ich habe in Spalte A die Namen von Mietern stehen und in Spalte B die Miete, die sie zahlen.
Jetzt möchte ich gerne automatisch den Mieter ermitteln, der die höchste Miete zahlt. Das alleine wäre noch kein Problem. Aber ich habe das Problem, dass Mieter erstens mehrfach in der Liste vorkommen können und es geht mir um deren GESAMTE Mietzahlung. Außerdem möchte ich zwischen Wohn- und Gewerbeeinheiten unterscheiden. Da das Ganze nicht gut zu erklären ist, habe ich eine Musterdatei als Beschreibung hochgeladen.

Die Datei https://www.herber.de/bbs/user/103021.xls wurde aus Datenschutzgründen gelöscht

Vielen Dank für eure Hilfe!
Grüße,
Nico

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: z.B. eine Mattrixfunktion(alitäts)formel ...
25.01.2016 18:32:14
...
Hallo Nico,
... dazu nutze ich AGGREGAT() in Kombination mit SUMMEWENNS(), auch wenn es anders etwas kürzer geht:
=INDEX(A:A;AGGREGAT(15;6;ZEILE(A2:A9)/(AGGREGAT(14;6;SUMMEWENNS(B2:B9;A2:A9;A2:A9;C2:C9;"Wohnen");1) =SUMMEWENNS(B2:B9;A2:A9;A2:A9;C2:C9;"Wohnen"));1))
Gruß Werner
.. , - ...

AW: die Datei danach als XLSx abspeichern! owT
25.01.2016 19:22:40
...
Gruß Werner
.. , - ...

verständlicher natürlich ohne Aggregat
25.01.2016 19:20:48
WF
Hi,
folgende Arrayformel:
{=INDEX(A:A;VERGLEICH(MAX(SUMMEWENN(A1:A99;A1:A99;B1:B99)*(C1:C99="wohnen"));SUMMEWENN(A1:A99;A1:A99; B1:B99)*(C1:C99="wohnen");0)) }
WF

Formel nicht korrekt
25.01.2016 20:45:29
KlausF
Hallo WF,
die Formel ist nicht korrekt.
Gib mal in Zeile 8
Paul - 1000 - Gewerbe
ein, dann wird Paul ausgeworfen.
Gruß
Klaus

Anzeige
AW: Formel nicht korrekt
25.01.2016 21:55:15
Luschi
Hallo Klaus,
Spielverderber - wollte dieses Beispiel morgen in meiner Excel-Selbsthilfegruppe vorstellen als einfache Musterlösung für eine Matrix-Formel; und nun DASSSSS!
Aber Du hast natürlich Recht, man darf nicht erst die Summe bilden und die Bedingung später ranhängen.
Hoffe natürlich noch auf eine einfachere Lösung als die von Neopa, denn die hats ja auch faustdick hinter den Ohren, trotz Aggregat-Funktion!
Es ist eben schade, das M$ keine Funktion entwickelt, die in der Lage ist, nicht nur das Ergebnis zu liefern, sondern auch die/den Zelle(n), aus der es gebildet wird.
Gruß von Luschi
aus klein-Paris

Anzeige
Schreib sie doch selbst, Luschi! ;-) Gruß owT
26.01.2016 03:32:25
Luc
:-?

noch 'n Platz frei?
26.01.2016 09:17:56
KlausF
Hallo Luschi,
Selbsthilfegruppe für Excel? Ist da noch 'n Platz frei?
,-)
Wenn jemanden noch eine Lösung für Excel 2003 einfällt
wäre das super. Die käme dann gleich in mein Archiv ...
Gruß aus Hamburg
Klaus

MIt Vergleich geht schon
25.01.2016 22:08:50
Josef
Hallo
Werner hat es ja schon angedeutet, dass es auf andere Weise kürzer geht.
Ich vermute, er hat das gemeint:
=INDEX(A:A;VERGLEICH(MAX(SUMMEWENNS(B1:B99;A1:A99;A1:A99;C1:C99;"Wohnen"));SUMMEWENNS(B1:B99;A1:A99; A1:A99;C1:C99;"Wohnen");0))
Gruss Sepp

stimmt: SUMMEWENNS statt SUMMEWENN
25.01.2016 23:43:07
WF
.

leider nicht für 2003
26.01.2016 09:14:01
KlausF
Hallo Sepp,
mit SUMMEWENNS geht es wohl, ich hatte mich aber schon auf
eine Lösung für Excel 2003 gefreut ... naja.
Gruß
Klaus

Anzeige
für 2003
26.01.2016 10:55:30
Josef
Hallo Klaus
Hier eine Variante für ältere Excel-Versionen:
{=INDEX(A2:A99;VERGLEICH(MAX(MMULT((MTRANS(A2:A99)=A2:A99)*MTRANS(C2:C99="Wohnen")*MTRANS(B2:B99); ZEILE(2:99)^0));MMULT((MTRANS(A2:A99)=A2:A99)*MTRANS(C2:C99="Wohnen")*MTRANS(B2:B99);ZEILE(2:99)^0);) )}
Gruss Sepp

AW: mir war SUMMEWENNS() noch nie so wertvoll ...
26.01.2016 15:20:09
...
Hallo Sepp,
... wie in diesem thread.
Ich hatte auch noch mal über einer Alternative für Deinen XL2003er-Formelvorschlag nachgedacht.
Außer folgender Verkürzung Deiner Formel, liefen alle meine anderen Versuche ins Nirvana.

{=INDEX(A:A;1+VERGLEICH(MAX(MMULT((MTRANS(A2:A99&C2:C99)=A2:A99&"Wohnen")*MTRANS(B2:B99); ZEILE(A2:A99)^0));MMULT((MTRANS(A2:A99&C2:C99)=A2:A99&"Wohnen")*MTRANS(B2:B99);ZEILE(A2:A99)^0);)) }

Gruß Werner
.. , - ...

Anzeige
AW: für 2003
27.01.2016 17:06:34
KlausF
Hallo Sepp,
schöne Lösung! Danke
Gruß
Klaus

AW: wie Du schon schriebst ...
26.01.2016 15:28:32
...
Hallo Sepp,
... ich ich prinzipiell, genau diese Formel vor Augen, nur mit dem Unterschied, dass ich diese auch wieder "nur" als Matrixfunktion(alität)sformel geschrieben hätte.
=INDEX(A:A;VERGLEICH(MAX(INDEX(SUMMEWENNS(B1:B99;A1:A99;A1:A99;C1:C99;"Wohnen");));INDEX(SUMMEWENNS(B1:B99;A1:A99;A1:A99;C1:C99;"Wohnen"););))
Und analoge AGGREGAT()-Formel wäre:
=INDEX(A:A;VERGLEICH(AGGREGAT(14;6;SUMMEWENNS(B2:B99;A2:A99;A2:A99;C2:C99;"Wohnen");1);INDEX(SUMMEWENNS(B1:B99;A1:A99;A1:A99;C1:C99;"Wohnen"););))
Gruß Werner
.. , - ...

Anzeige
AW: die einfachste und effektivste Lösung ...
26.01.2016 15:34:11
...
Hallo Nico,
... und zwar egal welche Excelversion, wäre eine PIVOTauswertung der vorhandenen Daten.
Und zwar die Flächenart in den Berichtsfilter den Mieternamen in die Zeilenbeschriftung und die Miete in den Wertebereich. Abschließend die Summe Miete abwärts sortieren.
Das ganze ins mit wenigen Mausklicks getan und Du hast einen Mehrwert in der Auswertungs(möglichkeiten) durch entsprechende zusätzliche Filterung. Einziger (kleiner) Nachteil, bei neuen Daten musst Du die Pivotauswertung aktualisieren.
Gruß Werner
.. , - ...

Pivot Auswertung
26.01.2016 15:47:35
Josef
Hallo Werner
Das weis Nico schon, ich habe inzwischen folgende Datei gefunden.
https://www.herber.de/bbs/user/103052.xls
Gruss Sepp

Anzeige
AW: wenn das seine Originaldatei war/ist ...
26.01.2016 16:17:16
...
Hallo Sepp,
... die er hier eingestellt hatte, dann hatte ich das vergessen und zugreifen konnte und kann ich auf diese z.Zt. hier auch nicht mehr. Wie bist Du zu dieser Datei gekommen?
Gruß Werner
.. , - ...

ich denke schon, dass es seine Originaldatei ist
26.01.2016 18:18:17
Josef
Hallo Werner
Ich konnte oben auch nicht mehr auf die erste Datei zugreifen, da habe ich dann die angebotenen Alternativ-Vorschläge angeschaut.
Gruss Sepp

AW: ach so ...
26.01.2016 18:22:22
...
Hallo Sepp,
... dazu war ich wie mal wieder zu faul zu. Danke für die Info.
Gruß Werner
.. , - ...

nur mal rumgesponnen
27.01.2016 16:33:19
Michael
Hi zusammen,
das geht sogar mit X2000:
Option Explicit
Public Function mieter(Bereich As Range, Art As String) As String
Dim a As Variant, z&, betrag As Variant
Dim o As Object, o1 As Variant
a = Bereich
Set o = CreateObject("scripting.dictionary")
For z = 1 To UBound(a, 1)
If a(z, 3) = Art Then
o(a(z, 1)) = o(a(z, 1)) + a(z, 2)
End If
Next
If o.Count = 0 Then mieter = "#Art nicht gefunden"
betrag = Application.Max(o.items)
For Each o1 In o.keys
If o(o1) = betrag Then
mieter = o1 & ": " & betrag
Exit For
End If
Next
End Function

wobei mir die untere For-Schleife schon wieder quer im Hals steckt, aber ich muß wäch!
Hier nochmal die Datei (oben broken link): https://www.herber.de/bbs/user/103086.xls
Schöne Grüße,
Michael

Anzeige
AW: wir wollten aber eine Formellösung owT
27.01.2016 16:42:49
...
Gruß Werner
.. , - ...

ok, ok, hat mich nur gejuckt, owT
28.01.2016 14:52:54
Michael
und das Makros is ja auch nicht ausgereift...
Schönen Gruß zurück,
Michael

329 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige