# Excel: Zellen automatisch mit Formeln füllen



## HPB (21. Juni 2005)

Hallo, ich habe folgendes Problem in Excel:
in einer Spalte stehen untereinander ansteigende Reihen. Da der Wertebereich pro Reihe stark variiert, möchte ich die Daten in einer neuen Spalte direkt daneben jeweils auf den ersten Wert der Reihe normieren bevor ich die Werte grafisch darstelle.
Das ganze habe ich euch als Beispiel mal angefügt.

Leider ist meine original Datei sehr viel größer (ca 2500 Zeiten und auch deutlich mehr Spalten in denen ich nach dem gleichen Muster verfahren möchte).

Daher benötige ich eine Möglichkeit die Formelbildung zu automatisieren. Ich habe es schon mit Bearbeiten --> Auffüllen versucht:

1) für die erste Reihe die Formeln berechnen
2) die 1. Zelle aller Reihen markieren --> auto-auffüllem
3) die 2. Zelle aller Reihen markieren --> auto-auffüllen
4) ...


Bei so vielen Werten ist das aber immer noch umständlich.
Geht das auch effizienter?
Wer hat eine Idee?
PETER


----------



## Leola13 (21. Juni 2005)

Hai,

wieviel unterschiedliche Reihen pro Spalte hast du und wodurch unterscheiden sie sich (numerisch, alpha, ...) ?

Ciao Stefan


----------



## HPB (21. Juni 2005)

Wie in dem Beispiel besteht jede Reihe aus 5 Werten (Zeilen 2-6,7-11,...). In ein paar Wochen wird das Problem wohl aber wiederkehren mit jeweils 17 Werten pro Reihe (also Zeilen 2-18,19-...)

Die Reihen unterscheiden sicht durch die Beschriftung (immer Spalte A). Alle Werte sind nummerisch. Wie viele Reihen es endgültig sein werden, kann ich noch nicht genau sagen (im Moment ca 2500Zeilen/5 Zeilen pro Reihe=500). Reicht mein Beispiel nicht aus?

Danke für dein Bemühen,
PETER


----------



## Leola13 (21. Juni 2005)

Hai,

anbei ein Beispiel. Ist sicherlich noch eleganter zu lösen.

Ciao Stefan


----------



## duckdonald (23. Juni 2005)

Hi HPB,

ich hab mal das ganze als Makro probiert:


```
Sub Makro1()

wert = 5                                                     'Werte pro Reihe

lz = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row     'letzte Zeile ermitteln
reihen = (lz - 1) / wert                                     'wieviele Reihen?

For i = 1 To reihen                                          'für jede Reihe mache:
    Count = 0                                                'diese Variable hab ich benötigt, sonst gings nicht
    For j = (wert - 2) * -1 To 1                             'für jeden wert in der Reihe:
        Cells(i * wert + j, 3).Select                        '...springe zu Zelle...
        ActiveCell.FormulaR1C1 = "=RC[-1]/R[" & Count & "]C[-1]"   '...und schreibe die Formel.
        Count = Count - 1
    Next j
Next i

End Sub
```
Das einzigste was du hier angeben musst sind die Werte pro Reihe, der Rest wird von alleine gemacht.


Gruß DuckDonald


----------

