Umsetzung einer Formel in VBA

Bild

Betrifft: Umsetzung einer Formel in VBA
von: Max
Geschrieben am: 19.11.2015 15:08:09

Moin!
Ich habe einen ganzen Haufen an Facebook-Daten vor mir und bin gerade dabei, die Daten zu ordnen. Dabei möchte ich jedem Wert (zum Beispiel Reichweite=123.456) einen Wert zwischen 1 und 100 zuordnen. Ich hatte dazu eine Formel erstellt, allerdings auf der Basis 1 bis 10:

=WENN(H5="";"no value";WENN(H5=0;"0";WENN(H5<=(C5+C7);"1";WENN(H5<=(C5+2*C7);"2";WENN(H5< =(C5+3*C7);"3";WENN(H5<=(C5+4*C7);"4";WENN(H5<=(C5+5*C7);"5";WENN(H5<=(C5+6*C7);"6"; WENN(H5<=(C5+7*C7);"7";WENN(H5<=(C5+8*C7);"8";WENN(H5<=(C5+9*C7);"9"; WENN(H5<=(C5+10*C7) ;"10")))))))))

H5 wäre in dem Fall der Wert, dem ich die Zahl zuordnen möchte; C5 ist der Minimal-Wert; C7 ist die durch 10 (bei 100-Skalierung natürlich durch 100) geteilte Differenz des Maximums und des Minimums der H-Zahlenreihe. Ist das einigermaßen verständlich? ;-)
Bis 10 klappt das problemlos, wenn ich das aber auf 100 übertrage, wird die Formel natürlich zu lang.
Deshalb wäre es schön, wenn ich diese Formel in VBA umsetzen könnte, leider fehlt mir dazu aber der Ansatz.
Habt ihr da eine kluge Idee?
Vielen Dank schonmal,
Max

Bild

Betrifft: AW: Umsetzung einer Formel in VBA
von: Rudi Maintaire
Geschrieben am: 19.11.2015 15:27:19
Hallo,
das folgt doch letztlich einer linearen Funktion. ergo muss man die 0...100 anhand H5 berechnen können anstatt zu WENNen.
x=h5-c5/C7 (evtl. auf-/ abrunden auf ganze Zahl)
Beispielmappe?
Gruß
Rudi

Bild

Betrifft: Das muss man doch nicht WENNen, ...
von: Luc:-?
Geschrieben am: 19.11.2015 15:34:16
…Max,
so regelmäßig wie das ist, sollte folgende MatrixFml ebenfalls fktionieren:
{=WENN(H5="";"no value";INDEX(ZEILE(A$1:A$100);VERGLEICH(WAHR;H5<=C5+(ZEILE(A$1:A$100)-1)*C7;0))) }
Gruß, Luc :-?

Bild

Betrifft: AW: Umsetzung einer Formel in VBA
von: Max
Geschrieben am: 19.11.2015 15:39:09
Herzlichen Dank! Ich bin gerade leider nicht in Rechner-Nähe und kann es noch nicht ausprobieren, aber ich melde mich, sobald es getestet ist!
Falls es nicht klappen sollte, schicke ich mal ein Beispiel mit!

Bild

Betrifft: AW: Umsetzung einer Formel in VBA
von: Rudi Maintaire
Geschrieben am: 19.11.2015 15:47:13
nach meiner Interpretation:
=WENN(H5="";"no value";ABRUNDEN((H5-MIN(H:H))/((MAX(H:H)-MIN(H:H))/100);))
Gruß
Rudi

Bild

Betrifft: AW: Umsetzung einer Formel in VBA
von: Max
Geschrieben am: 19.11.2015 17:08:45
Vielen Dank für eure Mühe!
Ich habe eure Formeln mal eingebaut, leider hat keine funktioniert - das liegt aber vermutlich daran, dass ich sie falsch benutzt habe. Ich habe mal kurz eine Beispiel-Mappe erstellt, in der ich "meine" Lösung einmal reingeschrieben habe. Im ersten Schritt Minimum und Maximum definiert, daraus die Differenz errechnet, diese in 10 Teile skaliert und schließlich den Werten in der A-Spalte einen dieser Werte mit "meiner" WENN-Formel zwischen 1 und 10 zugeordnet. In der Praxis möchte ich aber statt einer Einteilung zwischen 1 und 10 eine Einteilung zwischen 1 und 100 vornehmen, da die Abstimmungen deutlich feiner sein müssen, als in meinem Beispiel - aber das sollte ja eigentlich kein Problem sein, das hochzuskalieren.
Leider kann ich die Datei nicht hier anhängen, deshalb habe ich sie mal in mein Drive gestellt: https://drive.google.com/file/d/0B56Y0DNLLbkYaTgtMjFLaTBicUE/view?usp=sharing

Bild

Betrifft: Deine BspDatei stimmt 1. nicht mit deinen ...
von: Luc:-?
Geschrieben am: 20.11.2015 04:49:23
…Angaben überein, Max,
und enthält 2. britische Datumsangaben! :-|
Warum nimmst du nicht wenigstens internationale lt UNO-Vereinbarung?
Morrn, Luc :-?

Besser informiert mit …

Bild

Betrifft: AW: Deine BspDatei stimmt 1. nicht mit deinen ...
von: Max
Geschrieben am: 20.11.2015 08:07:39
Moin!
Ui, mir war gar nicht bewusst, dass es für Datumsanzeigen unterschiedliche Ländernormen gibt. Darauf kommt es mir aber gar nicht an, die Datumsanzeigen habe ich nur genutzt, um eine Reihenfolge zu haben. Ich könnte daraus auch 1., 2., 3. ... machen, das ist nicht wichtig.
Den ersten Teil verstehe ich nicht ganz: Meinst du, dass die Zellenzuteilungen im Vergleich zur erstgenannten Formel nicht stimmen oder dass es in meinem Beispiel nur von 1 bis 10 geht und nicht von 1 bis 100? In letzterem Fall dachte ich, dass es da ja nur eine Skala ist, wo egal ist, ob die von 1 bis 3 oder 37 bis 1000 geht - falls das gewünscht ist, kann ich die 1 bis 100 Formel aber gerne mit einfügen - nur leider nicht in ein Feld, weil die Formel dafür zu lang ist ;-)

Bild

Betrifft: Nee, du hattest m.H5 vgln, da steht aber nichts!
von: Luc:-?
Geschrieben am: 20.11.2015 12:54:40
Luc :-?

Bild

Betrifft: AW: Nee, du hattest m.H5 vgln, da steht aber nichts!
von: Max
Geschrieben am: 20.11.2015 13:27:59
Ach so, jetzt weiß ich, was du meinst! Ja, da war die Benennung in der Tat nicht ganz hilfreich.
Ich hatte allerdings die Zeit, mich nochmal mit freiem Kopf an deine Formel zu setzen und siehe da: Funktioniert wunderbar! Also dafür schonmal herzlichen Dank!
Die einzige Sache, die nicht funktioniert ist die Berechnung des Maximalwerts in der Ursprungs-Spalte. Das bedeutet: Wenn ich die Zelle eingebe, die in =Max(Spalte1:Spalte2) den Maximalwert ergibt, spuckt er mir immer einen #NV aus. Ich konnte es bisher nur dadurch lösen, dass ich von Hand einen etwas höheren Maximalwert eingegeben habe, gibt es da eine andere Lösung?

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Umsetzung einer Formel in VBA"