Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Kleinster Wert unter 2 Bedingungen

Betrifft: Kleinster Wert unter 2 Bedingungen von: Jonathan
Geschrieben am: 12.09.2014 12:18:11

Hallo,
aus der Tabelle im Anhang möchte ich, dass mir Excel folgendes ausspuckt (
https://www.herber.de/bbs/user/92594.xlsx):

- den kleinsten Wert aus Spalte B unter der Voraussetzung, dass in Spalte C "Angebot gestellt" steht UND in Spalte A von jeder Firma jeweils nur das kleinste gestellte Angebot angezeigt wird

Bisher sind leider alle Versuche gescheitert. Ich bekomme zwar mit MIN(...) die kleinsten Werte raus, aber wie ich die Bedingungen einbaue ist mir absolut unklar...

Liebe Grüße

Jonathan

  

Betrifft: AW: Kleinster Wert unter 2 Bedingungen von: ChrisL
Geschrieben am: 12.09.2014 16:09:51

Hi Jonathan

=MIN(WENN(($A$1:$A$100="Firma A")*($C$1:$C$100="Angebot gestellt");$B$1:$B$100))

Formel mit Ctrl+Shift+Enter abschliessen
(Array-Formel)

cu
Chris


  

Betrifft: AW: Kleinster Wert unter 2 Bedingungen von: Adis
Geschrieben am: 12.09.2014 17:40:25

Hallo

die Beispiel Datei habe ich mir noch nicht angesehen, ich hab nur Excel 2003.
Bei der Formel ist mir aufgefallen das in Spalte A nur Firma A ausgewertet wird.
Gebe ich Firma B oder C ein bleibt die Auswertung auf Firma A bestehen.

Ich bin auch davon ausgegangen das in Spalte A Zahlenwert stehen. Ist das richtig?
Mein Programm ist zwar eine alte Programmiersprache. Es funktioniert auf jeden Fall.
Wenn es bessere Lösungen gibt waere das auch schön. Einfach mal ausprobieren.

Das Makro in ein normales Modublatt kopieren und zuerst in einer Testdatei testen.
Ich benutze die Spalte D als Hilfsspalte um das Ergebnis anzuseigen. Sollten darin
Werte stehen muss man den Bereich aendern oder die markierten Zeilen im Makro löschen.
Es gibt auf jeden Fall eine Anzeige über MsgBox mit kleinstem Wert und Adressangabe.

Sub Kleinstes_Angebot_finden()
Dim kWert, vWert, Gefunden, übl
   Sheets("Tabelle1").Select
   'Ergebnis Hilfsspalte löschen
   Range("D2:E20").ClearContents '** Hilfsspalte  (ggf. löschen)

   'zuerst Max Wert im gesamten Bereich laden
   For Each j In Range("A2", [a2].End(xlDown))
      If j.Value > 1 And j.Value > kWert Then kWert = j.Value
   Next j:  vWert = kWert
   
neu:  'wiederholen bis min. Wert gefunden wurde  (Überlauf Schutz)
   Gefunden = Empty:  Adr = Empty:  übl = übl + 1
   'Schleife für kleinsten Wert igesamten Bereich suchen
   For Each j In Range("A2", [a2].End(xlDown))
      If j.Value > 1 And j.Cells(1, 3) = "Angebot gestellt" Then _
      If j.Value < vWert And j.Value < kWert Then kWert = j.Value
   Next j:  vWert = kWert

   'Auswertschleife um kleinsten Wert "Angebot gestellt" finden
   For Each i In Range("A2", [a2].End(xlDown))
      If i.Value = kWert And i.Cells(1, 3) = "Angebot gestellt" Then
         Gefunden = i.Cells(1, 2)
         Adr = i.Address(False, False)
      End If
   Next i
   
   'Bei nicht Gefunden Neustsrt (kein Angebot gestellt)
   If übl > 10 Then MsgBox "Überlauf - nicht gefunden": Exit Sub
   If Gefunden = Empty Then GoTo neu
   
   'Ergebnis Gefunden, Anzeige und Notiz in Spalte D
   Range(Adr).Cells(1, "D") = Gefunden 'Hilfssspalte  ggf. löschen
   MsgBox Adr & "  " & Gefunden
Exit Sub
End Sub
Gruss Adis


  

Betrifft: AW: Kleinster Wert unter 2 Bedingungen von: Jonathan
Geschrieben am: 15.09.2014 11:28:43

Hallo,

besten Dank für eure Ansätze!

@Chris:

- wenn ich die Formal in D1 eintrage spuckt er mir "100" aus...das wäre allerdings der Wert für "Firma B" und nicht für "Firma A". Mache ich da irgendwas falsch?

@Adis:

- der Makro funktioniert und liefert für die Firma A das richtige Ergebnis. Aber wie werden die niedrigsten Werte für andere Firmen angezeigt? (leider sind meine VBA-Kenntnisse nicht die besten)


Vielleicht war das, was ich geschrieben habe, auch nicht deutlich genug formuliert:

- ich würde gern den niedrigsten Wert des Budgets in Spalte B (wenn es geht "automatisch") angezeigt bekommen von der jeweiligen Firma in Spalte A (die Firmenliste ist sehr lang und ich würde gern eine Formel haben die es mir ermöglicht, dass pro Firma jeweils der niedrigste Wert angezeigt wird unter der Prämisse, dass der Auftragsstatus in Spalte C "Angebot gestellt" lautet ohne das ich jede Firma einzeln in eine Formel eintragen muss)


  

Betrifft: AW: Kleinster Wert unter 2 Bedingungen von: ChrisL
Geschrieben am: 15.09.2014 13:17:15

Hi Jonathan

Hinweis zu Array-Formel berücksichtigt?

Array-Formeln {Matrixformeln}; - zu erkennen an den geschweiften Klammern vor dem Gleichheitszeichen und am Ende {=FORMEL}. Diese {Klammern} werden nicht eingegeben sondern zum Abschluß der Formel durch gleichzeitig Strg Shift Enter erzeugt (statt Enter allein). Wenn Du hier einen Array kopierst, diese Klammern also löschen, und die Formel wie beschrieben abschließen.

cu
Chris


  

Betrifft: AW: Kleinster Wert unter 2 Bedingungen von: Jonathan
Geschrieben am: 15.09.2014 13:56:39

Hallo Chris,

habe den Hinweis nicht berücksichtigt - jetzt geht es danke! :-)

Folgendes Problem habe ich jetzt noch:

In Spalte A stehen bei mir sehr viele unterschiedliche Unternehmen. Jetzt müsste ich ja jeden Unternehmensnamen einzeln in eine Formel eingeben um jeweils den niedrigsten Wert mit "Angebot erstellt" zu erhalten oder?
Gibt es eine Lösung wie man nicht jedes Unternehmen einzeln in die Formel eintragen muss? Also praktisch die Formel mit der Prämisse, dass bei jedem Unternehmen ("egal welches") nur ein Mal der niedrigste Wert mit "Angebot gestellt" angezeigt wird?

LG

Jona


  

Betrifft: AW: Kleinster Wert unter 2 Bedingungen von: ChrisL
Geschrieben am: 15.09.2014 15:39:37

Hi Jona

Mach dir einmalig eine Liste der Firmen (z.B. mit Spezialfilter, keine Duplikate).

Anstatt = "Firma A" wäre dann ein Bezug auf die Zelle

=MIN(WENN(($A$1:$A$100=A1)*($C$1:$C$100="Angebot gestellt");$B$1:$B$100))
=MIN(WENN(($A$1:$A$100=A2)*($C$1:$C$100="Angebot gestellt");$B$1:$B$100))
usw.

Oder du schreibst es Dir das Resultat in Spalte D.

cu
Chris


 

Beiträge aus den Excel-Beispielen zum Thema "Kleinster Wert unter 2 Bedingungen"