🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Mehrere IF-Operationen hintereinander / Nur ausführen wenn..

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
Held_der_Arbeit
Beiträge: 16
Registriert: Mo 12. Aug 2013, 12:11

Mehrere IF-Operationen hintereinander / Nur ausführen wenn..

Beitrag von Held_der_Arbeit » Mo 12. Aug 2013, 12:46

Hallo!

Ich sitze grade vor dem Problem einen ziemlich riesigen Datensatz für meine Diplomarbeit kodieren zu müssen (und das mit bescheidenen Calc&Excel Kentnissen :D ). Habe schon eine ganze Weile gestöbert aber bisher noch keine passende Lösung gefunden, daher hoffe ich sehr das ihr mir helfen könnt.

Es geht um folgendes;
Die Zelle (A) kann 5 (nicht numerische) Werte annehmen ("MW", "WM", "MM", "WW", "Distraktor"). Die ersten 4 Werte ergeben sich aus dem kombinierten Inhalt der Zellen B und C. Der mögliche Inhalt sind 2 Sets von je 4 Bildern (f01.jpg-f04.jpg & m01.jpg-m04.jpg). Kommen also zuerst die m-Bilder und dann f-Bilder ergibt sich ein Wert "MW". Als Code sähe das so aus:

Code: Alles auswählen

=WENN((ODER(A1="~m01.jpg";B1="~m02.jpg";B1="~m03.jpg";B1="~m04.jpg"))UND(ODER(C1="f01.jpg";C1="~f02.jpg";C1="~f03.jpg";C1="~f04.jpg"));"MW";"Fehler")
Nun möchte ich den Sonst_Wert "Fehler" am Ende durch weitere Rechenoperationen ersetzen, so dass Calc nach misslungenem Test auf "MW" nicht einfach "Fehler" ausspuckt, sondern noch diese ähnlichen Operationen für WM, MM und WW durchführt und den entsprechenden Wert in die Zelle einträgt;
WM

Code: Alles auswählen

=WENN((ODER(A1="~f01.jpg";B1="~f02.jpg";B1="~f03.jpg";B1="~f04.jpg"))UND(ODER(C1="m01.jpg";C1="~m02.jpg";C1="~m03.jpg";C1="~m04.jpg"));"WM";"Fehler")
MM

Code: Alles auswählen

=WENN((ODER(A1="~m01.jpg";B1="~m02.jpg";B1="~m03.jpg";B1="~m04.jpg"))UND(ODER(C1="m01.jpg";C1="~m02.jpg";C1="~m03.jpg";C1="~m04.jpg"));"MM";"Fehler")
WW

Code: Alles auswählen

=WENN((ODER(A1="~f01.jpg";B1="~f02.jpg";B1="~f03.jpg";B1="~f04.jpg"))UND(ODER(C1="f01.jpg";C1="~f02.jpg";C1="~f03.jpg";C1="~f04.jpg"));"WW";"Fehler")
Schlussendlich soll der ganze Wahnsinn nur dann durchgeführt werden, wenn der vorherige Inhalt von Zelle A NICHT "Distraktor" war. Dann soll der Inhalt der Zelle nicht verändert, und mit der nächsten weitergemacht werden.

Ich hoffe das ganze ist nicht zu konfus und/oder völlig unmöglich und jemand kann mir helfen :)

Beste Grüße
Jan

oleander
Beiträge: 125
Registriert: Di 30. Jul 2013, 17:23

Re: Mehrere IF-Operationen hintereinander / Nur ausführen we

Beitrag von oleander » Mo 12. Aug 2013, 15:59

Hallo Jan,
Held_der_Arbeit hat geschrieben:Ich hoffe das ganze ist nicht zu konfus und/oder völlig unmöglich und jemand kann mir helfen :)
- völlig unmöglich? --- wahrscheinlich nicht
- zu konfus? --- ganz bestimmt ;)
- ob jemand helfen kann? --- fraglich
- haben Sie die weiteren Formeln für FEHLER schon ausprobiert?
- die Verkettung der Bildernamen ist mir noch schleierhaft
- Könnten Sie mal 'ne Musterdatei hochladen?
.
Windows 10 Home, Vers. 1903; LibreOffice Version 6.3.4.2.(x64)

mikele
* LO-Experte *
Beiträge: 1932
Registriert: Mo 1. Aug 2011, 20:51

Re: Mehrere IF-Operationen hintereinander / Nur ausführen we

Beitrag von mikele » Mo 12. Aug 2013, 20:25

Hallo,
ich gehe mal davon aus, dass in A1 eventuell "Distraktor" steht und in B1 und C1 die genannten Dateinamen (nicht die Bilder selbst).
Folgende Formel in D1 sollte die verschiedenen Fälle erfassen:

Code: Alles auswählen

=WENN(A1="Distraktor";A1;WENN(UND(ODER(LINKS(B1;2)="~f";LINKS(B1;2)="~m");ODER(LINKS(C1;2)="~f";LINKS(C1;2)="~m"));WENN(LINKS(B1;2)="~f";"W";"M")
so als Anfang ... (Den Inhalt von A1 kannst du nicht per Formel ändern, deshalb die Hilfsspalte D)
Dateianhänge
beispiel.ods
(10.28 KiB) 248-mal heruntergeladen
Gruß,
mikele

Held_der_Arbeit
Beiträge: 16
Registriert: Mo 12. Aug 2013, 12:11

Re: Mehrere IF-Operationen hintereinander / Nur ausführen we

Beitrag von Held_der_Arbeit » Mo 12. Aug 2013, 21:39

Vielen Dank für die Antworten, das hilft mir schon sehr. Hier ein Beispielausschnitt aus meinem Dokument: (siehe Anhang)
Idee war es, anhand der Werte in B und C die in A zu "reparieren", da einige aufgrund von Schludrigkeit beim manuellen übertragen fehlerhaft sind (siehe rot markiert). Die Distraktoren sollten davon aber nicht erfasst werden, da sie sonst später fälschlicherweise mit in die Berechnung eingehen würden.

Im Wesentlichen hat mikele es also schon ganz gut getroffen. Großartiger Code auch, Ich wusste garnicht das man mit "~m" und "~f" schon alle damit beginnenden Werte abdecken kann (und nicht für ~f01.jpg, ~f02.jpg, ~f03.jpg etc. jeweils eigene Befehle schreiben muss). Nur was genau tun die LINKS Befehle, für den Fall das ich mir damit mal etwas eigenes bauen möchte?

Das sich die Ausgabe nicht direkt in Zeile A schreiben lässt hatte ich befürchtet (Calc hat mir schon in einem früheren Versuch wegen "zirkulärer Referenz" auf die Finger gehauen :D ). Ich werds also einfach so rechnen und dann die fertige Spalte rüberkopieren.

In jedem Fall vielen Dank!
Jan
Dateianhänge
WsW Beispiel.ods
(8.75 KiB) 266-mal heruntergeladen

oleander
Beiträge: 125
Registriert: Di 30. Jul 2013, 17:23

Re: Mehrere IF-Operationen hintereinander / Nur ausführen we

Beitrag von oleander » Di 13. Aug 2013, 11:35

Aus der LibreOffice Hilfe:
LINKS
Hiermit geben Sie das erste Zeichen bzw. die ersten Zeichen eines Textes zurück.
Syntax
LINKS("Text"; Zahl)
Text ist der Text, dessen am Anfang stehende Wortsegmente bestimmt werden sollen (Anm. ol.: bzw. die Zelle, die den Text enthält)
Anzahl (optional) gibt die Anzahl der Zeichen für den Anfangstext an. Ist dieser Parameter nicht definiert, dann wird ein Zeichen zurückgegeben.
Beispiel
=LINKS("ausgabe";3) gibt "aus" zurück.
In "unserem" Fall also ~f usw.

Fehlermeldungen wegen zirkulärer Referenzen können vermieden werden: Menü Extras - Optionen... - LibreOffice Calc - Berechnen
.
Windows 10 Home, Vers. 1903; LibreOffice Version 6.3.4.2.(x64)

Held_der_Arbeit
Beiträge: 16
Registriert: Mo 12. Aug 2013, 12:11

Re: Mehrere IF-Operationen hintereinander / Nur ausführen we

Beitrag von Held_der_Arbeit » Di 13. Aug 2013, 13:07

Alles klar, vielen Dank!

Ich denke dieses Problem kann als gelöst gelten.

Habe jetzt eher mit formatierungstechnischen Problemen zu kämpfen (das .csv file muss für die spätere Verwertung in einem Drittprogramm zu einem normalen .txt file werden, ist als ex-csv-datei aber überschwemmt mit Kommas...),
aber ich denke das wäre der Übersicht halber in einem eigenen Thread besser aufgehoben?


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten