Trend - fehlende Messwerte interpolieren ?

Bild

Betrifft: Trend - fehlende Messwerte interpolieren ? von: Johannes
Geschrieben am: 18.02.2005 23:06:04

Hallo Spezialisten,

ich habe folgendes Problem: in meiner Datei werden Messwerte eingetragen. Solagne alle Messwerte vorhanden sind ist alle OK, wenn mal einer fehlt, wird der mit Mittelwert aus Vorgänger und Nachfolger "geschätzt".
Wenn aber zwei oder mehr in Folge fehlen geht das so nicht mehr wegen fehler Zirkelbezug.

Siehe Datei: https://www.herber.de/bbs/user/18317.xls

Kann mir hierbei jemand helfen? Vielen Dank schon jetzt für Eure Bemühungen.

Gruß

Johannes

Bild


Betrifft: Können auch mal 3 oder mehr Werte fehlen? o.w.T von: Reinhard
Geschrieben am: 18.02.2005 23:13:30




Bild


Betrifft: Ja - denkbar von: Johannes
Geschrieben am: 18.02.2005 23:16:04

Hallo Reinhard,

ja, ist (leider) denkbar.

Johannes


Bild


Betrifft: Trend - fehlende Messwerte interpolieren ? von: Johannes
Geschrieben am: 19.02.2005 10:17:48

Da mein Problem als nicht mehr offen steht, es mir aber wichtig ist, setze ich es wieder auf offen.

Gruß

Johannes


Bild


Betrifft: AW: Trend - fehlende Messwerte interpolieren ? von: Reinhard
Geschrieben am: 19.02.2005 12:11:46

Hi Johannes,
wäre eine VBA-Lösung auch in Ordnung?
Gruß
Reinhard


Bild


Betrifft: AW: Trend - fehlende Messwerte interpolieren ? von: Johannes
Geschrieben am: 19.02.2005 14:56:59

Hallo Reinhard,

ja klar gerne geht das auch

Gruß

Johannes


Bild


Betrifft: nachfrage von: th.heinrich
Geschrieben am: 19.02.2005 15:37:18

hallo Johannes,

sind die Eingaben immer in Zehnerschritten?

gruss thomas


Bild


Betrifft: AW: nachfrage von: Johannes
Geschrieben am: 19.02.2005 17:47:27

Hallo Thomas,

leider nein

Gruß

Johannes


Bild


Betrifft: AW: Trend - fehlende Messwerte interpolieren ? von: Reinhard
Geschrieben am: 19.02.2005 15:52:41

Hi Johannes,
Alt+F11, entweder Einfügen--Modul, oder wenn schon Modul1 esitiert, links in der Liste Doppelklick auf Modul1, nachstehenden Code der Kunktion interpolieren reinkopieren, vba-Editor schliessen.

Function interpolieren() As Double
Application.Volatile
Set Zelle = Range(Application.Caller.Address).Offset(0, -4)
If Zelle.Value <> "" Then
    interpolieren = -Zelle.Value
Else
    oben = Zelle.End(xlUp).Row 'erste belegte zeile oberhalb
    unten = Zelle.End(xlDown).Row 'erste belegte Zeile unterhalb
    interpolieren = -(Cells(oben, 1) + (Zelle.Row - oben) * (Cells(unten, 1) - Cells(oben, 1)) / (unten - oben))
End If
Set Zelle = Nothing
End Function

Benutzung der Funktion, wie eine normale Excelfunktion, also Einfügen--Funktion--Benutzerdefiniert.
Tabellenblattname: Tabelle1
     A29   B29   C29    D29      E29    F29   
29                       FRQ   Links         
30   20               125 Hz     -20         
31   30               250 Hz     -30         
32   40               500 Hz     -40         
33   50               750 Hz     -50         
34   60                    1     -60         
35   70                  1,5     -70         
36   80                    2     -80         
37                         3     -90         
38                         4    -100         
39  110                    6    -110         
40  120                    8    -120         
Benutzte Formeln:
E30:  =-A30
E31:  =interpolieren()
E32:  =interpolieren()
E33:  =interpolieren()
E34:  =interpolieren()
E35:  =interpolieren()
E36:  =interpolieren()
E37:  =interpolieren()
E38:  =interpolieren()
E39:  =interpolieren()
E40:  =-A40
Gruß
Reinhard
Tabelle wurde eingefügt mit Code von https://www.herber.de/forum/technik/messages/1226.html





Bild


Betrifft: function =interpolieren() Bitte Hilfe von: Johannes
Geschrieben am: 19.02.2005 21:29:37

Hallo Spezialisten,

ich habe von Reinhard diese super Function erhalten, Danke nochmal, allerdings arbeitet sie bei mehr als einer Spalte (siehe Datei) nicht richtig - was habe ich hier in der Umsetzung von Reinhards Idee falsch gemacht?

https://www.herber.de/bbs/user/18359.xls

Wenn mir jemand hier helfen könnte? Herzlichen Dank schon jetzt.

Gruß

Johannes


Bild


Betrifft: AW: function =interpolieren() Bitte Hilfe von: Reinhard
Geschrieben am: 19.02.2005 23:32:08

Hi Johannes,
in der Ausgangsdatei wurde die Funktion in Spalte E aufgerufen und bezog sich auf Werte in Spalte A, also -4, du hast das ja korekt umgesetzt für die F-Spalte und das auf -5 erhöht.
Allerdings hing sich die Funktion daran auf, dass ich bei oben und unten ja in Spalte 1 suchte, deshalb klappte es in Spalte F aber in G,H usw nicht mehr, also machte ich aus der 1 die Zelle.Column, also die Spalte wo die (mit -5 bezogen auf die Aufrufspalte) versetzte "Zelle" ihre Spalte hat.
Oder so ähnlich, jedenfalls klappts jetzt wirst schon verstehen wieso jetzt.
Gruß
Reinhard
die Datei: https://www.herber.de/bbs/user/18360.xls

der Code in Modul1:

Function interpolieren() As Double
Application.Volatile
Set Zelle = Range(Application.Caller.Address).Offset(0, -5)
If Zelle.Value <> "" Then
    interpolieren = -Zelle.Value
Else
    oben = Zelle.End(xlUp).Row 'erste belegte zeile oberhalb
    unten = Zelle.End(xlDown).Row 'erste belegte Zeile unterhalb
    interpolieren = -(Cells(oben, Zelle.Column) + (Zelle.Row - oben) * (Cells(unten, Zelle.Column) - Cells(oben, Zelle.Column)) / (unten - oben))
End If
Set Zelle = Nothing
End Function


Tabellenblattname: Auswertung
    A  | B  | C  | D  |   E    |   F   |   G   |   H   |   I   | J | 
 1|    |    |    |    |        |       |       |       |       |   | 
 2|    |    |    |    |    FRQ | Links | Links | Links | Links |   | 
 3| 10 | 40 | 50 | 60 | 125 Hz |   -10 |   -40 |   -50 |   -60 |   | 
 4|    |    |    |    | 250 Hz |   -15 |   -43 |   -53 |   -63 |   | 
 5|    |    |    |    | 500 Hz |   -20 |   -46 |   -56 |   -66 |   | 
 6|    |    |    |    | 750 Hz |   -25 |   -49 |   -59 |   -69 |   | 
 7|    |    |    |    |      1 |   -30 |   -52 |   -62 |   -72 |   | 
 8|    |    |    |    |    1,5 |   -35 |   -55 |   -65 |   -75 |   | 
 9|    |    |    |    |      2 |   -40 |   -58 |   -68 |   -78 |   | 
10|    |    |    |    |      3 |   -45 |   -61 |   -71 |   -81 |   | 
11|    |    |    |    |      4 |   -50 |   -64 |   -74 |   -84 |   | 
12|    |    |    |    |      6 |   -55 |   -67 |   -77 |   -87 |   | 
13| 60 | 70 | 80 | 90 |      8 |   -60 |   -70 |   -80 |   -90 |   | 
Benutzte Formeln:
A3:  =WENN(Eingabe!A3<>"";Eingabe!A3;"")
A4:  =WENN(Eingabe!A4<>"";Eingabe!A4;"")
A5:  =WENN(Eingabe!A5<>"";Eingabe!A5;"")
A6:  =WENN(Eingabe!A6<>"";Eingabe!A6;"")
A7:  =WENN(Eingabe!A7<>"";Eingabe!A7;"")
A8:  =WENN(Eingabe!A8<>"";Eingabe!A8;"")
A9:  =WENN(Eingabe!A9<>"";Eingabe!A9;"")
A10:  =WENN(Eingabe!A10<>"";Eingabe!A10;"")
A11:  =WENN(Eingabe!A11<>"";Eingabe!A11;"")
A12:  =WENN(Eingabe!A12<>"";Eingabe!A12;"")
A13:  =WENN(Eingabe!A13<>"";Eingabe!A13;"")
B3:  =WENN(Eingabe!B3<>"";Eingabe!B3;"")
B4:  =WENN(Eingabe!B4<>"";Eingabe!B4;"")
B5:  =WENN(Eingabe!B5<>"";Eingabe!B5;"")
B6:  =WENN(Eingabe!B6<>"";Eingabe!B6;"")
B7:  =WENN(Eingabe!B7<>"";Eingabe!B7;"")
B8:  =WENN(Eingabe!B8<>"";Eingabe!B8;"")
B9:  =WENN(Eingabe!B9<>"";Eingabe!B9;"")
B10:  =WENN(Eingabe!B10<>"";Eingabe!B10;"")
B11:  =WENN(Eingabe!B11<>"";Eingabe!B11;"")
B12:  =WENN(Eingabe!B12<>"";Eingabe!B12;"")
B13:  =WENN(Eingabe!B13<>"";Eingabe!B13;"")
C3:  =WENN(Eingabe!C3<>"";Eingabe!C3;"")
C4:  =WENN(Eingabe!C4<>"";Eingabe!C4;"")
C5:  =WENN(Eingabe!C5<>"";Eingabe!C5;"")
C6:  =WENN(Eingabe!C6<>"";Eingabe!C6;"")
C7:  =WENN(Eingabe!C7<>"";Eingabe!C7;"")
C8:  =WENN(Eingabe!C8<>"";Eingabe!C8;"")
C9:  =WENN(Eingabe!C9<>"";Eingabe!C9;"")
C10:  =WENN(Eingabe!C10<>"";Eingabe!C10;"")
C11:  =WENN(Eingabe!C11<>"";Eingabe!C11;"")
C12:  =WENN(Eingabe!C12<>"";Eingabe!C12;"")
C13:  =WENN(Eingabe!C13<>"";Eingabe!C13;"")
D4:  =WENN(Eingabe!D4<>"";Eingabe!D4;"")
D5:  =WENN(Eingabe!D5<>"";Eingabe!D5;"")
D6:  =WENN(Eingabe!D6<>"";Eingabe!D6;"")
D7:  =WENN(Eingabe!D7<>"";Eingabe!D7;"")
D8:  =WENN(Eingabe!D8<>"";Eingabe!D8;"")
D9:  =WENN(Eingabe!D9<>"";Eingabe!D9;"")
D10:  =WENN(Eingabe!D10<>"";Eingabe!D10;"")
D11:  =WENN(Eingabe!D11<>"";Eingabe!D11;"")
D12:  =WENN(Eingabe!D12<>"";Eingabe!D12;"")
D13:  =WENN(Eingabe!D13<>"";Eingabe!D13;"")
F3:  =-A3
F4:  =interpolieren()
F5:  =interpolieren()
F6:  =interpolieren()
F7:  =interpolieren()
F8:  =interpolieren()
F9:  =interpolieren()
F10:  =interpolieren()
F11:  =interpolieren()
F12:  =interpolieren()
F13:  =-A13
G3:  =-B3
G4:  =interpolieren()
G5:  =interpolieren()
G6:  =interpolieren()
G7:  =interpolieren()
G8:  =interpolieren()
G9:  =interpolieren()
G10:  =interpolieren()
G11:  =interpolieren()
G12:  =interpolieren()
G13:  =-B13
H3:  =-C3
H4:  =interpolieren()
H5:  =interpolieren()
H6:  =interpolieren()
H7:  =interpolieren()
H8:  =interpolieren()
H9:  =interpolieren()
H10:  =interpolieren()
H11:  =interpolieren()
H12:  =interpolieren()
H13:  =-C13
I3:  =-D3
I4:  =interpolieren()
I5:  =interpolieren()
I6:  =interpolieren()
I7:  =interpolieren()
I8:  =interpolieren()
I9:  =interpolieren()
I10:  =interpolieren()
I11:  =interpolieren()
I12:  =interpolieren()
I13:  =-D13
Gruß
Reinhard
Tabelle wurde eingefügt mit Code von https://www.herber.de/forum/technik/messages/1226.html 



Bild


Betrifft: ich bin beeindruckt - herzlichen Dank o.w.T. von: Johannes
Geschrieben am: 20.02.2005 00:00:31




 Bild

Beiträge aus den Excel-Beispielen zum Thema "Ländereinstellung in Windows"