Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1076to1080
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

mehrere Rechenoperationen in einer Zelle

mehrere Rechenoperationen in einer Zelle
20.05.2009 14:16:29
marc
Hallo,
ich nehme eine Umrechung in Excel vor. Diese besteht aus 6, nacheinander ablaufenden, Rechenschritten.
1. Wert/255
2. WENN(Wert aus 1 größer 0,0405;(Wert aus 1+0,055/1,055)^2,4;(Wert aus 1/12,92))
3. Wert aus 2*100
4. 0,6502043*Wert aus 3+0,1780774*X2+0,1359384*X3 (Ist eine Zeile aus einer 3x3 Matrize)
5. Wert aus 4*100
6. WENN(Wert aus 5 größer 0,008856;(Wert aus 5^(1/3));(7,787*Wert aus 5)+(16/116))
Nun würde ich gerne diese einzelnen Rechenschritte in einer Zelle machen.
Denn:
Alles in eine Formel zusammenfassen....hmmm...Schritt 1 und 3 kein Problem. Aber, der Rest:
GROßE FEHLERQUELLE...und unübersichtlich.
Zwischenschritte auf extra sheet ausrechnen lassen und nur das Endergebnis in der Zelle darstellen.
Bläht mein Excel File ziemlich auf, da die Datenmenge ziemlich groß sein kann (Wert ist von 2 Bildern der jeweilige R, G und B-Wert eines Pixels , d.h. locker mehrere 10000 - 100000 Werte) und bedeuted ein mehr an Aufwand.
Daher meine Frage. Ist es möglich in einer Zelle mehrere Rechenoperationen ablaufen zu lassen?
Ideal wäre: Schritt 1, Schritt 2...Schritt 6
Oder kommt man hier nur mit VBA weiter?
Gruß M.Vogel

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere Rechenoperationen in einer Zelle
20.05.2009 14:26:24
marc
uppps....da hat sich doch der Fehlerteufel eingeschlichen:
4. Wert aus 4/Bezugswert
...jetzt ist es richtig.
AW: mehrere Rechenoperationen in einer Zelle
20.05.2009 14:57:17
Ptonka
Hallo,
versuche es mal damit:
=WENN((((0,6502043*((WENN((A3/255)>0,0405;((A3/255)+(0,055/1,055))^2,4;(A3/255)/12,92))*100)) +(0,1780774*X2)+(0,1359384*X3))*100)>0,008856;((((0,6502043*((WENN((A3/255)>0,0405;((A3/255) +(0,055/1,055))^2,4;(A3/255)/12,92))*100))+(0,1780774*X2)+(0,1359384*X3))*100)^(1/3)); (7,787*(((0,6502043*((WENN((A3/255)>0,0405;((A3/255)+(0,055/1,055))^2,4;(A3/255)/12,92))*100)) +(0,1780774*X2)+(0,1359384*X3))*100))+(16/116))
Gruß,
Ptonka
Anzeige
AW: mehrere Rechenoperationen in einer Zelle
20.05.2009 16:57:09
Claus
Geile Formel! Soo schööööön lang!
AW: mehrere Rechenoperationen in einer Zelle
22.05.2009 13:00:24
marc
hmmm...danke für die Vorschläge. Aber das ist genau die Art von Monster die ich vermeiden wollte. Irgendwo steckt noch der Fehlerteufel drin, den die Zahlenwerte dieses Monsters stimmen nicht mit den Zahlenwerten am Ende der Einzelrechnungen überein.
Auch bin ich mir nicht sicher ob meine Korrekturpost...
"uppps....da hat sich doch der Fehlerteufel eingeschlichen:
5 Schritt. Wert aus 4/Bezugswert
...jetzt ist es richtig."
...berücksichtigt wurde?
AW: mehrere Rechenoperationen in einer Zelle
20.05.2009 14:38:10
NoNet
Hallo M.,
das könntest Du z.b. so zusammenfasssen :
=WENN((100*0,6502043*WENN(A1/255>0,0405;(A1+0,055/1,055)^2,4;A1/255/12,92)+0,1780774*X2+0,1359384*X3)*100>0,008856;((100*0,6502043*WENN(A1/255>0,0405;(A1+0,055/1,055)^2,4;A1/255/12,92)+0,1780774*X2+0,1359384*X3)*100)^(1/3);7,787*((100*0,6502043*WENN(A1/255>0,0405;(A1+0,055/1,055)^2,4;A1/255/12,92)+0,1780774*X2+0,1359384*X3)*100)+16/116)
Allerdings habe ich 2 Fragen dazu :
zu 2.) : soll das tatsächlich (Wert aus 1+0,055/1,055) oder ((Wert aus 1+0,055)/1,055) ?
zu 4.) : Was bedeuten X2 und X3 ? - Sind das Zelladressen oder welcher Bestandteil welcher Matrix ?
Gruß, NoNet
Anzeige
AW: mehrere Rechenoperationen in einer Zelle
22.05.2009 13:13:30
marc
An NoNet:
zu 2. Jau...hast recht. Sollte natürlich ((Wert aus 1+0,055)/1,055) heißen.
zu 4: A1=X1; X1, X2, X3 sind die RGB Werte die zu berechnen es gilt.
Wer sich auskennt: RGB nach XYZ-Berechnung ist hier das Thema!
Schritte 1-6 sind zur Berechnung der X-Werte aus RGB.
Analog das gleiche, nur mit anderen Matrizenwerten, für YZ.
Vorgang ist der, das die RGB-Werte vorgangs umgewandelt werden (Skalierung, Fallunterscheidung), danach in die Matrize zur Berechnung eingesetzt, und diese Werte nochmals weiter berechnet werden (Weißbezug, weitere Fallunterscheidung), um letztendlich XYZ zu erhalten.
Anzeige
AW: als Benutzerdefinierte Funktion
22.05.2009 13:22:00
Daniel
Hi
wenns so komplex ist, würde ich das als Benutzerdefinierte Funktion (VBA) einstellen, alleine schon wegen der Übersichtlichkeit:

Public Function DeineFunktion(ByVal Wert As Double, x2 As Double, x3 As Double) As Double
'--- Schritt 1
Wert = Wert / 255
'--- Schritt 2
If Wert > 0.0405 Then
Wert = (Wert + 0.055 / 1.055) ^ 2.4
Else
Wert = Wert / 12.92
End If
'--- Schritt 3
Wert = Wert * 100
'--- Schritt 4
Wert = 0.6502043 * Wert + 0.1780774 * x2 + 0.1359384 * x3
'--- Schritt 5
Wert = Wert * 100
'--- Schritt 6
If Wert > 0.008856 Then
Wert = Wert ^ (1 / 3)
Else
Wert = 7.787 * Wert + 16 / 116
End If
DeineFunktion = Wert
End Function


dieses Makro kopierst du in ein allgemeines Modul
dann kannst du die Funktion "DeineFunktion" wie eine normale Excelfunktion verwenden mit den 3 Parametern WERT, X2 und X3
Gruß, Daniel

Anzeige

367 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige