Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1456to1460
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Umsetzung einer Formel in VBA

Umsetzung einer Formel in VBA
19.11.2015 15:08:09
Max
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

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Umsetzung einer Formel in VBA
19.11.2015 15:27:19
Rudi
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

Das muss man doch nicht WENNen, ...
19.11.2015 15:34:16
Luc:-?
…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 :-?

AW: Umsetzung einer Formel in VBA
19.11.2015 15:39:09
Max
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!

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

AW: Umsetzung einer Formel in VBA
19.11.2015 17:08:45
Max
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

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

AW: Deine BspDatei stimmt 1. nicht mit deinen ...
20.11.2015 08:07:39
Max
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 ;-)

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

AW: Nee, du hattest m.H5 vgln, da steht aber nichts!
20.11.2015 13:27:59
Max
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?
Anzeige

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige