Frage stellen
0

[Gelöst] Vergleich von 3 Werten und kleinster gemeinsamer Nenner finden

gefragt 2020-01-09 08:44:59 +0200

jorek Gravatar-Bild

updated 2020-01-10 10:20:58 +0200

Hallo zusammen,

ich habe eine Tabelle mit 4 Spalten. In der ersten Spalte steht die "Zahnfarbe" und in den darauffolgenden 3 Spalten jeweils ein Wert, der der Zahnfarbe in der gleichen Zeile zugeordnet ist. Nun möchte ich in ein Suchfeld einen gemessenen Wert (aus 3 Zahlen) eintragen, wobei diese 3 Zahlen mit jeder Zeile aus der Tabelle abgeglichen werden sollen. Die Zeile, die den Werten am nächsten kommt, sollte dann angezeigt werden.

Ich hoffe mein Vorhaben ist verständlich erklärt.

LG Jorek C:\fakepath\Farbring Heraceram1.ods

Bearbeiten Tags ändern Melden schließen vereinen löschen

Kommentare

Nicht gelöst sind auch noch ein paar Dinge:
-1- Das Vorliegen einer "vollständig befriedigenden" Antwort wird in einer AskBot Q&R-Site (anders als in vielen Foren) nicht durch Hinzufügung eines Schlüsselworts zum Betreff gekennzeichnet, sondern durch Markieren der betreffenden Antwort als korrekt (Häkchen klicken!).
-2- Der Betreff (Wortlaut)sollte verbessert werden:
-2a- Die irreführende Erwähnung des kgV sollte entfernt werden.
-2b- Dass es um Zahnfarben bzw. um LBA-Werte geht, sollte erwähnt werden. So könnte jemand, der dazu eine existierende fachliche Lösung kennt, zu einer Antwort animiert werden.
-2c- Vorschlag: Zu einem Tripel (3 Zahlen, LBA / Dentinfarbe) das bestpassende aus einer Liste wählen.

Lupp Gravatar-BildLupp ( 2020-01-10 11:43:17 +0200 )Bearbeiten

2 Antworten

1

geantwortet 2020-01-09 09:12:07 +0200

Werner_RJP Gravatar-Bild

updated 2020-01-09 16:39:41 +0200

Lupp Gravatar-Bild

Eine mathematische Lösung besteht in der Berechnung des harmonischen Mittelwertes: Von jedem Wert der "Dentin"-Tabelle (Vektor L, A, B) wird die quadratische Differenz zum Messwert berechnet. Anschliessend werden die Quadrate summiert und dann das Minimum dieser Reihe festgestellt. Das Minimum wäre dem entsprechenden Farbwert recht nahe. Hier die Formel:
(L(A1)-L(Messwert))**2 + (A(A1)-A(Messwert))**2 + (B(A1)-B(Messwert))**2.
Die Formel ist für jede Zeile (A1 bis D4) anzuwenden. Ein anschliessender Vergleich würde dann den Ergebnisvektor liefern. (Kann leider meine Tabelle gerade nicht ins Netz stellen, ich hoffe aber, dass ich deutlich genug den Weg beschrieben habe) Übrigends: das Ergebnis des mitgelieferten Messwertes ist C1.

(Zur besseren Lesbarkeit geringfügig editiert durch @Lupp.)
Anmerkung: In manchen Programmiersprachen dient ** als Operator der Potenzierung. In Calc (und auch in LibreOffice Basic) ist das ^.

Bearbeiten Melden löschen Link mehr

Kommentare

Wow! Superschnell und auch verständlich! Ich probiere es gleich aus. Vielen lieben Dank!

jorek Gravatar-Bildjorek ( 2020-01-09 09:18:13 +0200 )Bearbeiten

Werner, ich bräuchte bitte nochmal deine Hilfe!

In Spalte O5:O20 habe ich alle errechneten Werte. In O21 möchte ich via sVerweis den Wert nahe 0 ermitteln. In meiner Tabelle zeigt er mir nun -0,6 an... Zelle O8 ist doch aber dichter an 0. Woran liegt das?

Alles in allem, möchte ich, dass mir A27 die passende Zahnfarbe auswählt. Wie komme ich zu meinem Ziel?

ps: ich habe die Tabelle nochmal aktualisiert und unter eingangs erwähnten Link hochgeladen

jorek Gravatar-Bildjorek ( 2020-01-09 11:40:00 +0200 )Bearbeiten

Eine(!) mögliche Formel für O21 könnte lauten: - Allerdings: Ein Problem mit dieser Formel tritt auf, wenn ein Wert mal mit positiven und mal mit negativen Vorzeichen auftritt. Dann wird derjenige gefunden, der zuerst inO5:O20steht, Warum DeinVLOOKUPden Wert-0,60zu Tage fördert ist mir jetzt auch nach Lesen der OASIS Spezifikation ein Rätsel zumal nach manueller Sortierung tatsächlich der erwartete Wert-0,18` geliefert wird (Das ist auch in OpenOffice 4.1.7 schon so). Da ich (Denk-)Fehler in Sachen Calc Formeln eigentlich immer erstmal bei mir suche, traue ich mich noch nicht von einem Bug zu sprechen.

Alles in allem, möchte ich, dass mir A27 die passende Zahnfarbe auswählt

Was hat dann O21 mit D27 zu tun. Wie ist der Zusammenhang des Wertes mit der Zahl? Ist es schlicht dieselbe Zeile in der der Minimumwert und die Dentinname stehen - Dann in Zelle A27: =OFFSET(A5;MATCH(SUMPRODUCT(MIN(ABS(O5:O20)));ABS(O5:O20);0)-1;0)

Opaque Gravatar-BildOpaque ( 2020-01-09 12:23:45 +0200 )Bearbeiten

Vorab vielen Dank @Opaque Um dieses Vorhaben von Grund auf zu erläutern: Ich besitze ein Dentallabor. Diese Tabelle dient der Erstellung eines individuellem Farbmischungsverhältnises. Es wird digital ein Farbwert im LAB Farbraum gemessen, der der Situation im Patientenmund entspricht. Dieser Farbwert soll nun reproduziert werden.... d.h. ich gleiche die Patientenmessung mit dem Farbwert der uniformen Keramiken ab und erstelle mithilfe dieser Tabelle ein individuelles Farbmischungsverhältnis, um den Farbwert im Patientenmund zu erreichen. Die uniforme Keramik wird mit den ermittelten Farben modifiziert. In meiner Tabelle soll also erst ein Farbwert der Keramik gefunden werden, der dem Farbwert des Patienten am nächsten kommt und danach ein Mischungsverhältnis berechnet werden, um den Farbwert exakt zu treffen. D27 (Dropdown) bildet die Farbwerte der Keramiken ab. O21 stellt in meinem Fall ein Vergleichswert zwischen Patientenzahnfarbe und Keramikfarbe da.

jorek Gravatar-Bildjorek ( 2020-01-09 13:47:45 +0200 )Bearbeiten

Zurück zum Thema:

Leider entstehen bei der Eingabe der gemessenen Werte in dieser Formel negative, sowie positive Vorzeichen. Problematisch dabei ist, dass ich diese Werte nicht sortieren kann, da ich sonst keine Zuordung zu den in Spalten A5:D20 definierten Farben herstellen kann. D27 dient lediglich der Auswahl einer Farbe der Keramik zur Berechnung des Mischungsverhältnisses.

jorek Gravatar-Bildjorek ( 2020-01-09 14:21:49 +0200 )Bearbeiten

@jorek - danke für die Erläuterung, das habe im Grundsatz schon so verstanden, dass Du eine passende Zahnfarbe suchst. Sorry - ich habe mich natürlich mal wieder verschrieben. In meinem Kommentar sollte es naürlich A27 statt D27 heißen. Mir isr nur nicht vollständig klar, rein technisch gesehen, wie Dich jetzt der in Zelle O21 mit -0.18 gefundene Wert dazu bewegt (in der aktuellen Version der Datei) in A27 eine bestimmten Wert auszuwählen. Ist es die Tatsache dass der Wert -0,18 (4.ter Wert in O5:O20) in derselben Rehe steht wie A3,5. Anders: Der Index (=Reihe) in O5:O20 bestimmt den (ist gleich dem) Dentin Index (=Reihe) in A4:A20?

Soweit ich Deinen letzten Kommentar verstehe, habe ich das richtig interpretiert und Du kannst den Dropdown durch meine zweite Formel ersetzen.

PS: Du musst mit meiner Formel nicht sortieren. Nur im Zweifel muss Du sagen, wass passieren soll, wenn ...(mehr)

Opaque Gravatar-BildOpaque ( 2020-01-09 14:29:22 +0200 )Bearbeiten

Ich sehe gerade: mein erster Kommentar oben ist ja völlig durcheinander geraten (und bearbeiten kann ich das nicht mehr). Daher nochmal die Formel, die da stand oder stehen sollte:

O21=OFFSET(O5;MATCH(SUMPRODUCT(MIN(ABS(O5:O20)));ABS(O5:O20);0)-1;0)
A27=OFFSET(A5;MATCH(SUMPRODUCT(MIN(ABS(O5:O20)));ABS(O5:O20);0)-1;0)

(Nachdem was ich bisher glaube verstanden zu haben, braucht es O21 eigentlich gar nicht, da es ja um eine automatische Bestimmung von A27 geht).

Opaque Gravatar-BildOpaque ( 2020-01-09 14:54:28 +0200 )Bearbeiten

Du hast es richtig interpretiert. -0,18 ist der Zahnfarbe A3,5 zugeordnet. Allerdings macht mir mein Verstand mittlerweile einen Knoten in den Kopf! :D Setze ich deine Formel in A27 ein, dann erscheint die Fehlermeldung "#WERT!".

Zudem ist mir aufgefallen, dass wenn mein Messwert in D28 kleiner als D27 ist, auch ein Fehler produziert wird.

PS: Ich habe die Tabelle nochmal in übersichtlicher Form hochgeladen

jorek Gravatar-Bildjorek ( 2020-01-09 15:03:29 +0200 )Bearbeiten

Hallo, schau Dir bitte diese modifizierte Datei an. C:\fakepath\Farbring-Heraceram1-Moifiziert.ods

Ich habe da die beiden Formeln aus meinem letzten Kommentar eingearbeitet und die Daten -> Gültigkeit -Einstellungen so, angepasst, dass Du wählen kannst: Formel nehmen oder Wert (Falls man mal etwas überschreiben will).

PS: Schau bitte immer auch in die Formelzeile, um genau zu erkennen, was in A27 wirklich selektiert ist:

Und zur Sicherheit - folgende Information: Getestet mit LibreOffice:

Version: 6.3.4.2,Build-ID: 60da17e045e08f1793c57c00ba83cdfce946d0aa
CPU-Threads: 8; BS: Linux 4.12; UI-Render: Standard; VCL: kde5; 
Gebietsschema: de-DE (de_DE.UTF-8); UI-Sprache: de-DE, Calc: threaded
Opaque Gravatar-BildOpaque ( 2020-01-09 15:24:12 +0200 )Bearbeiten

Fantastisch! Jetzt macht die Tabelle genau das was sie soll! Ich werde mir das nochmal im Detail anschauen und nachlesen, da ich eigentlich ein Freund von autodidaktem Lernen bin. Vielen Dank für die umfangreiche Hilfe!

jorek Gravatar-Bildjorek ( 2020-01-09 15:42:44 +0200 )Bearbeiten
0

geantwortet 2020-01-10 12:02:10 +0200

Lupp Gravatar-Bild

(Nur zur Erläuterung meiner Kommentare als Zweitantwort mit angehängtr Datei:)
ask224378findOptimalLABtriple_1.ods

Bearbeiten Melden löschen Link mehr

Kommentare

@Lupp: warum so umständlich die einzelnen Fehlervektoren in G5 bis J20 erzeugen, dafür gibt es doch schon die CALC-Formel: quadaratesumme().

Werner_RJP Gravatar-BildWerner_RJP ( 2020-01-10 15:44:55 +0200 )Bearbeiten
Registrieren oder einloggen, um zu antworten

Antwortwerkzeuge

1 Beobachter

Statistik

Gefragt: 2020-01-09 08:44:59 +0200

Angesehen: 87 Mal

Aktualisiert: Jan 10