Kniffliges Problem

Hallo Leute,

folgendes Problem liegt mir vor:

Ich habe eine Excel-Tabelle mit knapp 10000 Einträgen. Prinzipiell sieht sie so aus:

-18,75 0
-7,692307 0
-25 40
22,22222 0
-9,090909 21,42857
50 70,58823
-26,66667 -13,7931
0 56
45,45454 15,38461

Nun soll ich neben jeder Spalte eine weitere einfügen (und das kann ich :wink: ).
In ihr soll für jede positive Zahl eine 1 und für jede negative Zahl eine -1 und für null keine Eintrag vorgenommen werden.

Da dies natürlich eine mordsermüdende Arbeit ist, frage ich mich ob jemand eine Idee hat, wie man dies mit einem Makro oder Visualbasic lösen kann.

Für jede Hilfe wäre ich Euch echt dankbar und habt ihr keine so legt für mich doch bitte eine Schweigesekunde ein (10000mal 1 und -1 tippen :frowning: ).

Gruß
Seppel

Hallo Seppel,
gar nicht so schwierig.

Kopiere die nachstehende Formel:

=WENN(A10;„1“;WENN(A1=0;"")))

in die erste Zelle der Hilfsspalte(n).
In der zweiten Hilfsspalte muß natürlich die A1 geändert werden in z.B. C1

Dann dynamisch nach unten, d.h. aus A1 wird A2 usw.

Danach steht in den Hilfsspalten das Gewünschte.

Viel Erfolg
Ullrich Sander

Im Prinzip hat Ullrich es schon gesagt, wie’s geht. Mit einem Makro kannst du’s auch machen, musst dann die „WENN(…)“ nicht 10 000 mal kopieren:

Sub vorzeichen()
Dim i1%, wert

Range(„A1“).Select
For i1 = 0 To 10000
wert = Sgn(ActiveCell.Offset(i1, 0))
If wert = 0 Then wert = „“
ActiveCell.Offset(i1, 1) = wert
Next i1

End Sub

Statt „A1“ musst du deine erste Zelle einsetzen. Wenn du mehrere Spalten nebeneinander hast, in denen deine Ausgangswerte stehen, musst du diese entsprechend bearbeiten. Obiger Makro schreibt mit „ActiveCell.Offset(i1, 1) = wert“ das Ergebnis in die Spalte direkt neben deinem Ausgangswert. Auch das kannst du natürlich entsprechend anpassen, z.B. 10 Spalten weiter rechts, oben, unten, sonstwo hinschreiben.

Gruss, Stucki

Hallo Ullrich,

vielen Dank für deinen Vorschlag, hat wunderbar geklappt. Das wird mir in zukunft einiges ersparen.

Gruss,
Seppel