WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Software (http://www.wcm.at/forum/forumdisplay.php?f=5)
-   -   excel, verschachtelte wenn dann abfrage (http://www.wcm.at/forum/showthread.php?t=244562)

onderbar 05.06.2012 15:29

excel, verschachtelte wenn dann abfrage
 
Hallo Leute!

Vielleicht kann mir jemand dabei helfen:

Es soll sein
IF(AND(C5>39;C5<59;G5>7000;G5<9900);"ok";"IF(AND(C 5>39;C5<59;G5>7000;G5<9900);"ok";"falsch")")

WENN das eine passt DANN ok SONST WENN das andere passt DANN AUCH ok SONST falsch

Ab dem 2. wenn gehts nicht mehr. Ist vielleicht nur eine Klammer im Weg?
Danke mal im Voraus!

T.dot 05.06.2012 16:08

das zweite IF steht komplett unter hochkomma ("), so gehts sicher nicht.
Wenn dann eher:
IF(AND(C5>39;C5<59;G5>7000;G5<9900);"ok";IF(AND(C 5>39;C5<59;G5>7000;G5<9900);"ok";"falsch"))

und geht das nicht mit einem if und or?
if(or(and(...);and(...));"ok";"falsch")

pc.net 05.06.2012 16:16

mit einer deutschen sprach-version von ms-office 2010 funktioniert die folgendermaßen bereinigte formel:

Code:

=WENN(UND(C5>39;C5<59;G5>7000;G5<9900);"ok";WENN(UND(C5>39;C5<59;G5>7000;G5<9900);"ok";"falsch"))

onderbar 05.06.2012 17:33

Danke euch Beiden! :--)

Funtioniert jetzt wunderbar! Nur habe ich einen Denkfehler drinnen, es fehlen AND und OR. So kommt kein sinnvolles Ergebnis raus.

IF(AND(C5>39;C5<59;G5>7000;G5<9900);"ok";IF(AND(C5 <39;C5>59;G5<7000);"ok";"falsch"))

Beim zweiten IF (c5<39 OR c5>59) AND (g5<7000)

Muss ich da jedesmal eine neue IF Verzweigung machen?

ZombyKillah 05.06.2012 18:31

Nein musst du nicht...
Code:

IF(OR(AND(C5>39;C5<59;G5>7000;G5<9900);AND(C5<39;C5>59;G5<7000));"ok";"falsch")
Würde das selbe Resultat liefern ...

ZombyKillah 05.06.2012 19:35

Was mir jetzt erst auffällt:
Code:

AND(C5<39;C5>59;G5<7000)
Ist immer FALSCH

onderbar 08.06.2012 13:54

jetzt hab ichs folgendermaßen geändert:

=IF(AND(C3>39;C3<59;G3>7000;G3<9900);"ok";IF((OR(C 3<39;C3>59)*AND(G3<7000));"ok";"falsch"))

Es gehört noch erweitert auf *(AND(G3<7000)OR(G3>9900)) nach dem zweiten IF.
Also WENN (c3<39 ODER c3>59) UND (g3<7000 ODER g3>9900)


nur leider nimmt Excel das so nicht?!

wbendl 10.06.2012 19:28

Hi!

Schreib dir eine VBA-Funktion. Damit ist alles übersichtlich und leicht lesbar. Außerdem gibt es kein Limit bei der Zahl der Verschachtelungen.


mfg

WB

onderbar 12.06.2012 14:54

Hab jetzt das zusammen geschustert, aber als Fehler kommt "Block IF without End IF)

Kann mir jemand sagen, ob das sonst passt, und wo der Fehler ist?

Code:

Sub test() ' überprüfen

For Each zelle In Bereich
  If zelle.Value(3, 3) > 39 And zelle.Value(3, 3) < 59 And zelle.Value(3, 7) > 7000 And zelle.Value(3, 7) < 9900 Then
  zelle.Value(3, 3).Font.ColorIndex = 8
  Else
  If zelle.Value(3, 3) < 39 Or zelle.Value(3, 3) > 59 And zelle.Value(3, 7) < 7000 Or zelle.Value(3, 7) > 9900 Then
  zelle.Value(3, 3).Font.ColorIndex = 8
  Else
  zelle.Value(3, 3).Font.ColorIndex = 1
  End If
 
End Sub

Danke!

wbendl 12.06.2012 15:10

Hi!

Es fehlt tatsächlich eine "End If". Vermutlich am Schluß, aber sicher kannst das nur du wissen. Außerdem fehlt next, um die Schleife zu schließen.

zelle.Value(3, 3) dürfte auch kein korrekter Ausdruck sein.

Insgesamt scheint es nicht die Umsetzung deiner Formel zu sein. Die ist mir aber zu kompliziert, um mich damit genau auseinander zu setzen.

Hier ein paar grundsätzliche Infos:
- Beginne jedes Modul mit der Zeile:
Option Explicit
Damit wird die Deklaration der Variablen erzwungen. Das vermeidet Fehler.
- Um eine Formel zu ersetzen braucht es eine Funktion mit Rückgabewert. Dieser wird in der Zelle angezeigt.

Eine Lösung mit For Each dürfte nicht zweckmäßig sein. Außerdem ist der Bereich nicht angegeben.

Wenn du mit VBA keine Erfahrung hast, beginne mit einer einfachen Funktion.
Oder beschreib mir verständlich, was du erreiche willst. Ich bring dann ein Beispiel, das du erweitern/anpassen kannst.


mfg

WB

onderbar 12.06.2012 15:54

Danke für deine Antwort, Bendl! Ich versuche noch etwas herum :--)


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag