Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zahlenfolge

Forumthread: Zahlenfolge

Zahlenfolge
Burk
Hallo,
ich habe eine Zahlenfolge mit Lücken wie z.B.
-17,-16,_,_,-13,_,_,_,_,-7,_,_,_,-3,_,_,_,_,,4,5,_,6,_,_,7 (_ ist leere Zelle)
Gesucht ist eine Funktion, die die Lücken optimal ausfüllt.
Hat jemand eine Idee?
Bin für alle Hinweise dankbar
Schöne Grüße
Georg
Anzeige
AW: Zahlenfolge
30.06.2009 09:52:51
robert
hi,
was bedeutet - optimal ausfüllt- ?
wie soll ausgefüllt werden ?
gruß
robert
AW: Zahlenfolge
30.06.2009 10:08:16
Burk
Hallo robert,
es sollte linear sein, keine Ausreißer vorkommen, wie eine Trendlinie
Gruß
Georg
so ist die frage nicht beantwortet..
30.06.2009 12:37:07
robert
..oder ich steh am schlauch :-(
stehen deine zahlen in zeilen oder spalten ?
sollen einfach die leerzellen entfernt werd ?
du schreibst aber was von "ausfüllen"
kannst du ein beispiel schicken, ?
gruß
robert
Anzeige
diese Zahlenfolge war'n ziemlicher Hammer
30.06.2009 12:59:48
WF
Hi Georg,
Deine Zahlen mit Lücken dazwischen stehen in A1 bis A99 (A1 ist gefüllt).
in B1 steht =A1
in B2 steht die Arrayformel:
{=WENN(A2="";B1+(INDEX(A:A;MIN(WENN(A2:A$99<>"";ZEILE(A2:A$99))))-INDEX(A:A;MAX(WENN(A$1:A2< >"";ZEILE(A$1:A2)))))/(MIN(WENN(A2:A$99<>"";ZEILE(A2:A$99)))-MAX(WENN(A$1:A2<>""; ZEILE(A$1:A2))));A2) }
runterkopieren
ARRAY-Formel {=geschweifte Klammern} nicht eingeben;
Abschluß der Formel mit gleichzeitig Strg / Shift / Enter (statt Enter allein); - das erzeugt sie.
trapp, trapp, trapp, trapp, trapp, brrrrr
WF
http://www.excelformeln.de/
die ultimative Formelseite
Anzeige
AW: diese Zahlenfolge war'n ziemlicher Hammer
30.06.2009 13:24:47
Burk
Hi WF,
wahnsinn, die Formel stimmt, Spitze!
Nur möchte ich in einer Spalte arbeiten, z.B. in Spalte A und dann per VBA die Lücken ausfüllen lassen.
Hast du eine Idee?
Gruß
Georg
VBA - nur über meine Leiche !
30.06.2009 13:33:11
WF
.
per Formel oder per VBA
30.06.2009 20:15:23
FP
Hallo Georg,
per Formel:
in B1: =A1
in B2: {=WENN(A2"";A2;B1+(INDEX(A2:A$99;VERGLEICH(1;N(A2:A$99"");0))-B1)/VERGLEICH(1;N(A2:A$99"");0))}
und runter kopieren
per VBA - in keinster Weise optimiert:
Public Sub Reihe_ergänzen() Dim l As Long Dim ll As Long Dim dl As Double Dim dn As Double Const cic As Integer = 1 ll = Cells(65536, cic).End(xlUp).Row For l = 1 To ll If IsEmpty(Cells(l, cic)) Then With Cells(l, cic).End(xlDown) dn = .Value Cells(l, cic) = dl + (dn - dl) / (.Row - l + 1) End With Else dl = Cells(l, cic) End If Next End Sub


Servus aus dem Salzkammergut
Franz

Anzeige
AW: per Formel oder per VBA
02.07.2009 07:29:47
Coach
Hallo FP,
für Dich als Kenner&Liebhaber eine (nicht längenoptimierte :-) ) Formel für eine "globale" Interpolation im Unterschied zu Deiner "lokalen" Variante:
Array-Formel in B1, dann runterkopieren:
=WENN(A1"";A1;TREND(N(INDIREKT("A"&KKLEINSTE(WENN(NICHT(ISTLEER($A$1:$A$26));ZEILE($A$1:$A$26)); ZEILE(INDIREKT("1:"&ANZAHL($A$1:$A$26))))));KKLEINSTE(WENN(NICHT(ISTLEER($A$1:$A$26)); ZEILE($A$1:$A$26));ZEILE(INDIREKT("1:"&ANZAHL($A$1:$A$26))));ZEILE()))
Hier als Datei:
https://www.herber.de/bbs/user/62872.xls
Gruß Coach
Anzeige
schöner TREND :-)
04.07.2009 18:29:29
FP
Hallo Coach,
in Spalte C habe ich ihn so umgesetzt, wie er hier eigentlich gefordert ist
Spalte E dient für Mitleser zur Veranschaulichung, was TREND in Deinem Fall berechnet
Spalte F bzw. G berechnet den TREND von der ersten zur letzten Zahl
Tabelle1
 ABCDEFG
11111111
2 1,751,755,617647065,617647060,285714290,28571429
3 2,52,55,529411765,52941176-0,42857143-0,42857143
4 3,253,255,441176475,44117647-1,14285714-1,14285714
544445,35294118-1,85714286-1,85714286
6 5,755,755,264705885,26470588-2,57142857-2,57142857
7 7,57,55,176470595,17647059-3,28571429-3,28571429
8 9,259,255,088235295,08823529-4-4
9111111115-4,71428571-4,71428571
10 12124,911764714,91176471-5,42857143-5,42857143
11131313134,82352941-6,14285714-6,14285714
12 11,511,54,735294124,73529412-6,85714286-6,85714286
13101010104,64705882-7,57142857-7,57142857
14 0,50,54,558823534,55882353-8,28571429-8,28571429
15-9-9-9-94,47058824-9-9
Formeln der Tabelle
B1 : =A1
C1 : =A1
D1 : =A1
E1 : =A1
F1 : =A1
G1 : =A1
B2 : {=WENN($A2"";$A2;B1+(INDEX($A2:$A$99;VERGLEICH(1;N($A2:$A$99""); 0))-B1)/VERGLEICH(1;N($A2:$A$99""); 0))}
C2 : {=WENN(A2"";A2;TREND(N(INDIREKT("A"&KKLEINSTE(WENN(A$1:A$99"";ZEILE($1:$99)); {1.2}+ANZAHL(A$1:A2)-1))); KKLEINSTE(WENN(A$1:A$99"";ZEILE($1:$99)); {1.2}+ANZAHL(A$1:A2)-1); ZEILE(C2)))}
D2 : {=WENN(A2"";A2;TREND(N(INDIREKT("A"&KKLEINSTE(WENN(NICHT(ISTLEER($A$1:$A$26)); ZEILE($A$1:$A$26)); ZEILE(INDIREKT("1:"&ANZAHL($A$1:$A$26)))))); KKLEINSTE(WENN(NICHT(ISTLEER($A$1:$A$26)); ZEILE($A$1:$A$26)); ZEILE(INDIREKT("1:"&ANZAHL($A$1:$A$26)))); ZEILE()))}
E2 : {=TREND({1;4;11;13;10;-9};{1;5;9;11;13;15};ZEILE())}
F2 : =F1+(INDEX($A$1:$A$99;VERWEIS(9;1/($A2:$A$99""); ZEILE(2:$99)))-F1)/(VERWEIS(9;1/($A2:$A$99""); ZEILE(2:$99))-ZEILE(F2)+1)
G2 : =TREND(N(INDIREKT("A"&1+{0;1}*(VERWEIS(1E+99;A2:A$99;ZEILE(2:$99))-1))); VERWEIS(1E+99;A2:A$99;ZEILE(2:$99))^{0;1};ZEILE(G2))
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Wenn Du mich weiter "coachen" willst - öfter als hier bin ich bei www.online-excel.de anzutreffen.
Würde mich freuen öfter mal was von Dir zu lesen...
Servus aus dem Salzkammergut
Franz
Anzeige
Korrektur zu VBA
30.06.2009 20:20:22
FP
Hallo Georg,
ohne ELSE: letzte Zahl muss immer "gemerkt" werden:
Public Sub Reihe_ergänzen() Dim l As Long Dim ll As Long Dim dl As Double Dim dn As Double Const cic As Integer = 1 ll = Cells(65536, cic).End(xlUp).Row For l = 1 To ll If IsEmpty(Cells(l, cic)) Then With Cells(l, cic).End(xlDown) dn = .Value Cells(l, cic) = dl + (dn - dl) / (.Row - l + 1) End With End If dl = Cells(l, cic) Next End Sub


Servus aus dem Salzkammergut
Franz

Anzeige
AW: Korrektur zu VBA
01.07.2009 07:40:10
Burk
Hallo Franz,
WOW, it works, Super!
Was meinst du mit "letzte Zahl muß immer 'gemerkt' werden"?
Vielen Dank und schöne Grüße aus Franken
Georg
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige