Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Größten/kleinsten Wert zu vorgegebenen Argumenten suchen
#1
Hallo liebes Forum!

Zuerst: Ich habe Euer Forum gerade eben entdeckt, bin allerdings kein Einsteiger in Excel. Aber Hilfe braucht man doch immer wieder einmal... Confused 

Ich habe zwei Tabellen, in der einen werden täglich anfallende und erledigte Arbeiten/Aufträge unterschiedlicher Art eingetragen, in der zweiten sollen sie in einem Jahresprotokoll zusammengefaßt werden.
Dazu ein Beispiel:
Ein Tischler bekommt den Auftrag für eine Sitzgruppe von Familie Maier, am nächsten Tag noch 4 Stühle für Hr. Schulze.
In der 1. Tabelle steht dann:

Auftrag - Arbeit - Anfang - Abschluß
Sitzgruppe Maier  -  Tischplatte - 12.03.2020 - 12.03.2020
Sitzgruppe Maier  -  Tischgestell - 12.03.2020  - 13.03 2020
Stühle Schulze - 1. Stuhl - 12.03.2020  - 14.03.2020
Sitzgruppe Maier - 1.Stuhl - 15.03.2020 - 17.03.2020
Stühle Schulze - 2. Stuhl - 16.03.2020  - 18.03.2020
...
Stühle Schulze - 4. Stuhl - 29.02.2020 - 02.04.2020
Sitzgruppe Maier - Eckbank - 30.03.2020 - 30.04.2020

in der zweiten Tabelle stünden dann nur die Aufträge (mit anderen Angaben zur Besteöllung) in jeweils einer Zeile:

Auftrag - Genaueres - Bestelldatum - Begonnen - Abgeschlossen - Preis
Sitzgruppe Maier - 2 Stühle, Eckbank, Tisch - 09.03.2020 - 12.03.2020 - 30.04.2020 - 1500,-
Stühle Schulze - 4 Stühle - 10.03.2020 - 12.03.2020 - 02.04.2020 - 400,-

Es sollen also der jeweils kleinste bzw. größte Wert aus den Spalten C bzw. D in der 1. Tabelle gefunden und in diejenigen Zeilen der 2. Tabelle geschrieben werden, die denselben Wert in Spalte A haben. Ich weiß, daß das mit Formeln und ohne VBA geht, denn ich habe das sogar schon einmal hinbekommen. Das ist allerdings lange her und ich habe diese Datei nicht mehr zur Verfügung.

Viele Grüße vom Bambusbär
Antworten Top
#2
Hallo,

passt das:

Arbeitsblatt mit dem Namen 'Tabelle1'
ABCD
1AuftragArbeitAnfangAbschluß
2Sitzgruppe Maier  Tischplatte12.03.202012.03.2020
3Sitzgruppe Maier   Tischgestell12.03.202013.03.2020
4Stühle Schulze1. Stuhl12.03.202014.03.2020
5Sitzgruppe Maier1.Stuhl15.03.202017.03.2020
6Stühle Schulze2. Stuhl16.03.202018.03.2020
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Arbeitsblatt mit dem Namen 'Tabelle2'
ABCDEFGH
1AuftragGenaueresBestelldatumBegonnenAbgeschlossenPreisMINMax
2Sitzgruppe Maier2 Stühle, Eckbank, Tisch09.03.202012.03.202030.04.2020150015.03.202015.03.2020
3Stühle Schulze4 Stühle10.03.202012.03.202002.04.202040012.03.202016.03.2020

ZelleFormel
G2{=INDEX(Tabelle1!$C$2:$C$6;VERGLEICH(MIN(WENN(Tabelle1!$A$2:$A$6=A2;Tabelle1!$C$2:$C$6));Tabelle1!$C$2:$C$6;0))}
H2{=INDEX(Tabelle1!$C$2:$C$6;VERGLEICH(MAX(WENN(Tabelle1!$A$2:$A$6=A2;Tabelle1!$C$2:$C$6));Tabelle1!$C$2:$C$6;0))}
G3{=INDEX(Tabelle1!$C$2:$C$6;VERGLEICH(MIN(WENN(Tabelle1!$A$2:$A$6=A3;Tabelle1!$C$2:$C$6));Tabelle1!$C$2:$C$6;0))}
H3{=INDEX(Tabelle1!$C$2:$C$6;VERGLEICH(MAX(WENN(Tabelle1!$A$2:$A$6=A3;Tabelle1!$C$2:$C$6));Tabelle1!$C$2:$C$6;0))}
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Wenn nicht, vielleicht mit etwas üben passend machen oder eine Beispielmappe mit Wunschergebnis einstellen.
Gruß Atilla
Antworten Top
#3
Hallo atilla!

Vielen Dank für Deine Antwort.

Zur näheren Erläuterung:
Die Suche muß über die ganze Tabelle gehen, nicht nur über die 6 Zeilen. Es kommen ja immer weitere Aufträge dazu, auch während andere noch laufen. Also in der Formel statt $A$2:$A$6.
Ich habe das entsprechend umgeschrieben und angepaßt. Ich mußte dann aber feststellen, daß in den Bereichen, die noch nicht vollständig ausgefüllt sind (entspricht noch nicht fertigen Aufträgen) die Meldung #NV für "Nicht verfügbar" in der Zelle steht.
Bei dem Rumprobieren und Suchen habe ich dann auch tatsächlich wieder die alte Tabelle gefunden, bei der ich das schon einmal gemacht hatte.
Dort sahen die Formeln so aus:

{=MIN(WENN(Protokoll!$B:$B=Auswertung!$A2;Protokoll!$K:$K))}
{=MAX(WENN(Protokoll!$B:$B=Auswertung!$A2;Protokoll!$L:$L))}

Jetzt habe ich diese verwendet und darin die Tabellen- und Spaltennamen angepaßt.
Aber es bleiben trotzdem noch zwei Fragen.
Wie schon an den Tabellennamen zu erkennen, handelte es sich damals um die Auswertung eines Protokolls einer abgeschlossenen Arbeit. Jetzt werden die Tabellen aber laufend erweitert. Und dabei kommt es auch vor, daß Zeilen zu geplanten Arbeitschritten vorbereitet werden, aber diese noch nicht begonnen wurde, also das "Anfang-Feld" leer ist. Dann schreibt die Formel "00.01.1900" herein, das übliche Datum für den Anfang der Computerzeitrechnung. Ich möchte aber, daß hier trotzdem das erste Datum angezeigt wiird, falls bereits ein Teil angefangen wurde und eben gar nichtsi Da muß wohl noch eine weitere "WENN-Bedingung" mit eingebaut werden, die die leeren Felder ausschließt - nur wohin?
Ich habe die beiden Formeln jetzt in die Hilfsspalten K und L gesetzt (sollen nachher ausgeblendet werden) und eine Spalte I für Zeitraum erstellt.
Dort steht dann:

=WENN($L2="";TEXT($K2;"TT.MM.JJJJ");TEXT($K2;"TT.MM.JJJJ")&ZEICHEN(10)&"—"&ZEICHEN(10)&TEXT($L2;"TT.MM.JJJJ"))

Das setzt das Anfangs- und Enddatum übereinader mit Bindestrich in eine Zelle.
Durch die Bedingung WENN($L2=""; ... wird bei einer noch laufenden Arbeit (ohne Enddatum) lediglich das Anfangsdatum angezeigt. Jetzt (mit dem Zellinhalt 00.01.1900) klappt das aber nicht mehr. Wie muß ich das ändern? Mit 0 habe ich es schon versucht, das macht keinen Unterschied.

Viele Grüße vom Bambusbär

PS. Wie fügt man hier eigentlich solche Formeln und Tabellenbeispiele in die Posts ein?
Antworten Top
#4
Moin Bambusbär,


Zitat:Wie fügt man hier eigentlich solche Formeln und Tabellenbeispiele in die Posts ein?

lies dir hierzu mal die beiden Beiträge hinter diesem Link https://www.clever-excel-forum.de/Forum-...gshinweise durch.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#5
hallöchen,

Arbeitsblatt mit dem Namen 'Tabelle1'
A
100.01.1900

ZelleFormatWert
A1TT.MM.JJJJ00:00:00
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.2) erstellt. ©Gerd alias Bamberg

Wie Du siehst, steht in der Zelle eigentlich 0. Da könnte es auch mit $L2>0 als Bedingung klappen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste