Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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
Anzeige

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?
Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel: Mehrere Rechenoperationen in einer Zelle


Schritt-für-Schritt-Anleitung

Um in Excel mehrere Rechenoperationen in einer Zelle durchzuführen, kannst Du die folgenden Schritte befolgen:

  1. Wert durch 255 teilen:

    =A1/255
  2. WENN-Funktion für Fallunterscheidung:

    =WENN(A1/255 > 0,0405; (A1/255 + 0,055/1,055)^2,4; A1/255/12,92)
  3. Ergebnis aus Schritt 2 mit 100 multiplizieren:

    =Wert aus Schritt 2 * 100
  4. Matrixberechnung:

    =0,6502043 * Wert aus Schritt 3 + 0,1780774 * X2 + 0,1359384 * X3
  5. Ergebnis erneut mit 100 multiplizieren:

    =Wert aus Schritt 4 * 100
  6. Abschluss-WENN-Funktion:

    =WENN(Wert aus Schritt 5 > 0,008856; (Wert aus Schritt 5)^(1/3); 7,787 * Wert aus Schritt 5 + 16/116)

Um alle Schritte in einer einzigen Zelle zu kombinieren, kannst Du die Formeln wie folgt zusammenfassen:

=WENN((((0,6502043 * WENN(A1/255 > 0,0405; (A1/255 + 0,055/1,055)^2,4; A1/255/12,92) * 100) + (0,1780774 * X2) + (0,1359384 * X3)) * 100) > 0,008856; (((0,6502043 * WENN(A1/255 > 0,0405; (A1/255 + 0,055/1,055)^2,4; A1/255/12,92) * 100) + (0,1780774 * X2) + (0,1359384 * X3)) * 100)^(1/3); (7,787 * (((0,6502043 * WENN(A1/255 > 0,0405; (A1/255 + 0,055/1,055)^2,4; A1/255/12,92) * 100) + (0,1780774 * X2) + (0,1359384 * X3)) * 100) + 16/116)

Häufige Fehler und Lösungen

  • Fehlerhafte Zellverweise: Achte darauf, dass die Zellbezüge korrekt sind. Falsche Zelladressen können zu fehlerhaften Ergebnissen führen.

  • Komplexität der Formel: Wenn die Formel zu lang oder unübersichtlich wird, kann es hilfreich sein, die Berechnungen in mehrere Schritte aufzuteilen oder in separate Zellen zu arbeiten.

  • Fallunterscheidung nicht berücksichtigt: Vergewissere dich, dass die WENN-Funktion korrekt implementiert ist, um alle möglichen Bedingungen abzudecken.


Alternative Methoden

Wenn Du dich mit der langen Formel nicht wohlfühlst, kannst Du auch VBA verwenden, um die Berechnungen durchzuführen. Hier ist ein einfaches Beispiel:

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

Kopiere diesen Code in ein Modul und Du kannst die Funktion wie eine normale Excel-Funktion verwenden.


Praktische Beispiele

Wenn Du beispielsweise RGB-Werte umrechnen möchtest, könntest Du die Funktion DeineFunktion so verwenden:

=DeineFunktion(A1, X2, X3)

Hierbei ist A1 der Wert, den Du umrechnen möchtest, während X2 und X3 die entsprechenden RGB-Werte sind.


Tipps für Profis

  • Verwende benannte Bereiche: Dies kann die Lesbarkeit Deiner Formeln erhöhen, indem Du Zelladressen durch beschreibende Namen ersetzt.

  • Testen der komplexen Formeln: Baue Deine Formel schrittweise auf und teste jeden Teil, um sicherzustellen, dass die Ergebnisse korrekt sind.

  • Verwende die Funktion "Formelüberwachung": Diese Funktion kann dir helfen, Fehler in komplexen Formeln zu finden.


FAQ: Häufige Fragen

1. Kann ich mehrere Formeln in einer Zelle verwenden?
Ja, Du kannst mehrere Rechenoperationen in einer Zelle zusammenfassen, indem Du die Formeln entsprechend kombinierst.

2. Was ist der Vorteil von VBA?
VBA ermöglicht es dir, komplexe Berechnungen in einer benutzerdefinierten Funktion zu kapseln, was die Übersichtlichkeit und Wartbarkeit erhöht.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige