Clever-Excel-Forum

Normale Version: Niedrigster Wert je Monat
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Moin Moin!

Ich habe zwei Excel Tabellen-Typen.


1. Wasserpegeldaten. Spalte A = Mess-Datum ; Spalte B = Wasserhöhe  (01.1989 33,04m; 02.1989 33,68m ff.) Davon ca. 200

2. Eine "Zusammenfassung" der Daten. Da ich 200 einzelne Blätter (Stationen entlang eines Flusses) habe, würde ich gerne für jede Station die Monatsmaxima und -Minima ermitteln.
Sprich, Januar: Wie hoch stand das Wasser minmal und maximal in der Aufzeichnungsreihe. Und das für jeden Monat.


Wenn Excel deutsch könnte, würde ich folgendes in die Zelle schreiben: "Zeig mir von allen Januar-Werten den niedrigsten/höchsten"... :19:


Das geht bestimmt mit Pivot - aber da die Daten-Tabellen täglich neue Daten erhalten hätte ich das gerne dynamisch.

Hat da jemand eine Idee? Idea


lg Monika
Hallo,

ich habe verstanden:

- 1 Blatt pro Station mit Datum 1.1989 (TT.YYYY)
für 1.1.1989 - 14.8.2018?
- einmalige Abfrage für die Vergangenheit, tägliche Aktualisierung für aktuelles Datum

offen ist:

1 Blatt oder 1 Datei pro Station

Kenntnisse in VBA

Wenn diese (und event. weitere) Fragen geklärt werden, sollte es möglich sein.

mfg
Vielen Dank für das Angebot zu helfen! Blush

Eine Datei mit einem Blatt pro Station mit der jeweiligen Zeitreihe. Beispiel:

Datum der Messung;Wasserstand in m NHN2016

07.1991;32,27
08.1991;32,19
09.1991;32,15
10.1991;32,11
.....
08.2018;31,21

Davon habe ich rund 200 einzelne Excel-Files (Dateien)


Kenntnisse in VBA gehen gegen 0


Beste Grüße

Monika :)
Hallo,

soll das Ergebnis so wie in der beigefügten Datei aussehen?

Sind die Tageswerte in Spalte A Texte?

Wo steht der Name der Station?

Sind alle Dateien in einem Ordner?

mfg

(Ohne eine Beispieldatei ist die Gefahr von Missverständnissen recht groß)
Hallo!

Ja so wie du das dargestellt hast, wäre das schon optimal.

Alles Daten sind in einem Ordner. Ich würde diese Berechung dann einmal in der Datei selber durchführen und danach eine Zusammenfassung wie die deine erstellen.

Spalte A ist als Datum [MM.JJJJ] formatiert. Spalte B als Dezimalzahl.

Die Abfrage muss es auch nicht für alle 200 automatisch machen - das kann ich auch klicken. Wichtig wäre für mich die Formel Blush
Hallo, in deinem Beispiel hier ginge das..: (nach unten und nach rechts ziehen)

Arbeitsblatt mit dem Namen 'Messstelle_101620160_KL 5     K'
HIJ
2MinMax
3Januar32,1333,98
4Februar32,1933,55
5März32,2333,31
6April32,3133,74
7Mai32,2233,21
8Juni32,1433,02
9Juli32,0832,78
10August32,0532,64
11September31,9732,52
12Oktober31,9632,51
13November32,0133,28
14Dezember32,0233,32

ZelleFormel
I3=AGGREGAT(16-SPALTE(A$1);6;$B$2:$B$83/(TEXT($A$2:$A$83;"MMMM")=$H3);1)
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.01] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Hallo Stefan,

für eine Datei geht es so (xl2016, "Daten dem Datenmodell zufügen")

mfg
Super! Danke für die Hilfe!

Das mit der Aggregat funktioniert, jetzt teste ich noch die Lösung von Fennek!


Vielen Lieben Dank!
(15.08.2018, 13:26)Monika_Kiel schrieb: [ -> ]Hallo!

...

Die Abfrage muss es auch nicht für alle 200 automatisch machen - das kann ich auch klicken. Wichtig wäre für mich die Formel Blush

Hallo, das könnte man aber für alle 200 automatisch machen - denke ich. Mit Power Query. Das wäre zudem dynamisch, also wenn Daten (Dateien) dazu kämen...
Hallo,

dieser Code sollte meine Beispieldatei mit den Werten aller Stationen füllen:

Code:
Sub F_en()
Dim WS As Worksheet: Set WS = ActiveSheet
Dim WSF As WorksheetFunction: Set WSF = Application.WorksheetFunction
Dim Mn(11) As Single
Dim Mx(11) As Single

Pf = ThisWorkbook.Path & "\"
f = Dir(Pf & "Messstell*.xlsx") '<<<<< anpassen >>>

lr = Cells(Rows.Count, 1).End(xlUp).Row + 1

Do While Len(f)
For i = 0 To 11
    Mn(i) = 1000
    Mx(i) = 0
Next i

    With GetObject(Pf & f)
        WS.Cells(lr, 1) = .Sheets(1).Name
        lrd = .Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
        Ar = .Sheets(1).Range("A2:B" & lrd)
        For i = 1 To UBound(Ar)
            Mo = Month(Ar(i, 1)) - 1
            Mn(Mo) = WSF.Min(Mn(Mo), Ar(i, 2))
            Mx(Mo) = WSF.Max(Mn(Mo), Ar(i, 2))
        Next i

For i = 0 To 11
'Debug.Print MonthName(i + 1), Mn(i), Mx(i)
    WS.Cells(lr, 2).Offset(, 2 * i) = Mn(i)
    WS.Cells(lr, 3).Offset(, 2 * i) = Mx(i)
Next i
        
        lr = lr + 1
        .Close 0
    End With
f = Dir
Loop

End Sub

mfg