WinFuture-Forum.de: Excel - mehrere Spalten prüfen und Wert ausgeben - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Office 2010
Seite 1 von 1

Excel - mehrere Spalten prüfen und Wert ausgeben

#1 Mitglied ist offline   SuperWolf 

  • Gruppe: aktive Mitglieder
  • Beiträge: 455
  • Beigetreten: 11. September 06
  • Reputation: 0

geschrieben 17. Dezember 2014 - 11:27

Hallo zusammen,

ich habe eine Excel Liste in der 3 Spalten geprüft werden müssen und je nach Inhalt ein Ergebnis (Textwert) ausgegeben werden soll.

Angehängtes Bild: 17-12-2014 11-24-20.png


In Spalte A bis C sind die Bedingungen erkenntlich und in Spalte D das Ergebnis was nach der Prüfung herauskommen soll.


Habt ihr zufällig eine Idee, wie ich dies umsetzen kann?
Marko? Verschachtelte Formel? Sonstiger Ansatz?


PS: habe auch mal die Datei angefügt.

Vielen Dank vorab!
Gruß
Wolf

Angehängte Datei(en)


Dieser Beitrag wurde von SuperWolf bearbeitet: 17. Dezember 2014 - 11:28

In der Zeitung von heute werden morgen Fische eingepackt!
0

Anzeige

#2 Mitglied ist offline   mephistolino 

  • Gruppe: aktive Mitglieder
  • Beiträge: 462
  • Beigetreten: 17. September 10
  • Reputation: 35

geschrieben 17. Dezember 2014 - 14:05

quick and dirty

Option Explicit
Public Function getresult(arg1 As String, arg2 As String, arg3 As String) As String

Dim result As String

'alles lowercase wandeln
arg1 = LCase(arg1)
arg2 = LCase(arg2)
arg3 = LCase(arg3)

'inhalte prüfen
If arg1 = "c" And arg2 = "approval rejected" And arg3 = "y" Then
	result = "DENIED"
	Else
	If arg1 = "c" And arg2 = "approval rejected" And arg3 = "n" Then
    	result = "C-Cancelled "
    	Else
    	If arg1 = "c" And arg2 = "participation cancelled" And arg3 = "y" Then
        	result = "Course Cancelled"
        	Else
        	If arg1 = "c" And arg2 = "participation cancelled" And arg3 = "n" Then
            	result = "R-Cancelled"
            	Else
            	If arg1 = "p" And arg2 = "pending approval" And arg3 = "y" Then
                	result = "C-Cancelled"
                	Else
                	If arg1 = "p" And arg2 = "pending approval" And arg3 = "n" Then
                    	result = "NO SL"
                    	Else
                    	If arg1 = "w" And arg2 = "waitlisted" And arg3 = "y" Then
                        	result = "C-Cancelled"
                        	Else
                        	If arg1 = "w" And arg2 = "waitlisted" And arg3 = "n" Then
                            	result = "NO SL"
                            	Else
                            	If arg1 = "e" And arg2 = "enrolled" And arg3 = "n" Then
                                	result = "ENROLLED"
                                	Else
                                    	result = "no result"
                                	End If
                            	End If
                        	End If
                    	End If
                	End If
            	End If
        	End If
    	End If
	End If
   
'rückgabe
getresult = result
 
End Function


alles, was du tun musst, ist, deiner mappe diesen code als vba-modul hinzuzufügen.

dann steht der mappe die funktion getresult zur verfügung, welcher du dann jeweils als argumente die zellen 1, 2 und 3 übergibst.

beispiel:

=getresult(a2;b2;c2)

Dieser Beitrag wurde von mephistolino bearbeitet: 17. Dezember 2014 - 14:09

0

#3 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 7.660
  • Beigetreten: 20. Juli 07
  • Reputation: 847

geschrieben 17. Dezember 2014 - 14:23

Arg dirty. :D

Erstmal muß die zugrundeliegende Logik bekannt sein. Sind A, B und C unabhängig voneinander? Wie genau entsteht D aus den dreien? Ohne das zu wissen, kann man diese Logik auch nicht im Tabellenblatt implementieren, weil es sonst garantiert irgendwann Fehler im Ergebnis geben wird.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#4 Mitglied ist offline   mephistolino 

  • Gruppe: aktive Mitglieder
  • Beiträge: 462
  • Beigetreten: 17. September 10
  • Reputation: 35

geschrieben 17. Dezember 2014 - 14:27

... so dirty wie die vorlage, aus der ich die logik geschlossen habe ;)

es funktioniert jedoch einwandfrei.
0

#5 Mitglied ist offline   SuperWolf 

  • Gruppe: aktive Mitglieder
  • Beiträge: 455
  • Beigetreten: 11. September 06
  • Reputation: 0

geschrieben 17. Dezember 2014 - 14:28

Danke mephistolino. Erfüllt genau den Zweck.

Habe anfangs gehofft es ohne Makro machen zu können, aber ist wohl so am "Einfachsten" - DANKE!
In der Zeitung von heute werden morgen Fische eingepackt!
0

#6 Mitglied ist offline   mephistolino 

  • Gruppe: aktive Mitglieder
  • Beiträge: 462
  • Beigetreten: 17. September 10
  • Reputation: 35

geschrieben 17. Dezember 2014 - 14:33

gern geschehen ;)
0

#7 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 7.660
  • Beigetreten: 20. Juli 07
  • Reputation: 847

geschrieben 17. Dezember 2014 - 15:06

Na, das geht doch den Moment schief, wenn eine der NICHT im Screenshot oben aufgetauchten Kombinationen auftaucht.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#8 Mitglied ist offline   mephistolino 

  • Gruppe: aktive Mitglieder
  • Beiträge: 462
  • Beigetreten: 17. September 10
  • Reputation: 35

geschrieben 17. Dezember 2014 - 15:08

nein.

denn:

Else
result = "no result"


0

#9 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 7.660
  • Beigetreten: 20. Juli 07
  • Reputation: 847

geschrieben 17. Dezember 2014 - 15:09

Doch. Zumindest dann, wenn eine dieser Kombinationen etwas ergeben SOLLTE.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#10 Mitglied ist offline   mephistolino 

  • Gruppe: aktive Mitglieder
  • Beiträge: 462
  • Beigetreten: 17. September 10
  • Reputation: 35

geschrieben 17. Dezember 2014 - 15:27

hör mal ...

ich möchte dir ja nicht zu nahe treten, aber:

der te hat ein excel-sheet mit abzuprüfenden kombinationsmöglichkeiten unterschiedlicher werte geliefert und wollte eine abprüfung ebenjener. das nehmen wir daher als gegeben hin.

wenn er mehr oder andere kombination will oder wöllte, könnte oder hätte er es gesagt.

meine lösung prüft eben das, was ER prüfen möchte (eben diese bedingungen). trifft keine der BENANNTEN bedingungen zu, ist das ergebnis "kein ergebis" (no result).

der te scheint zufrieden zu sein mit der lösung und hat sich bedankt. alles ist gut und es funktioniert. :rolleyes:

wöllte der te andere kombinationen abprüfen, hätte er es gesagt oder sagen können.

hat er aber nicht. :wink:

jede andere kombination, die in der vorliegenden fassungen keine der codierten möglichkeiten darstellt (also auch nicht abgeprüft werden sollte), ergibt daher NO RESULT.

das ist kein fehler.

SOLLTE eine kombination ETWAS ergeben (ein result), so hätte der te dies benannt oder benennen können.

es ist weder meine noch deine aufgabe, hier etwas hinein zu fabulieren, was nicht da ist, oder meinst du nicht?

wenn er nur das abprüfen will, was er uns gegeben hat, und jede andere kombination für ihn nicht wichtig ist und daher NO RESULT ergibt (und er das ok), findet), dann existiert faktisch kein problem.

überhaupt keins.

gerne (sehr gerne) kannst du einen anderen code erstellen, der (basierend auf den gegebenen daten) eine lösung zur verfügung stellt, die selbstständig ermittelt, welche kombinationen evtl. noch einen sinn ergeben könnten.

wo dann der sinn liegt, lässt sich nicht erschliessen.

und es ist auch nicht das, was der te wollte (er hat ja das, was er wollte).

nix für ungut, aber ich versteht gerade nicht, wo das problem liegt ...:unsure:
0

#11 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 7.660
  • Beigetreten: 20. Juli 07
  • Reputation: 847

geschrieben 17. Dezember 2014 - 17:10

Sorry, mephistolino, da haben wir uns offensichtlich nicht nur falsch verstanden, sondern haben auch noch aneinander vorbeigeredet (-schrieben? :wink: ).

Ich wollte Dich bestimmt nicht kritisieren - war nett genug von Dir, Dich noch hinzusetzen und ein Q+D Macro zusammenzubasteln.

Stattdessen wollte ich den TO darauf aufmerksam machen, daß seine Anfrage unvollständig ist und er daher nicht davon ausgehen kann, daß Deine (oder irgendeine!) vorgeschlagene Lösung auch tatsächlich *korrekt* ist.

Das hatte nicht die Bohne was mit Deinem Vorschlag an sich zu tun. :)

Dieser Beitrag wurde von RalphS bearbeitet: 17. Dezember 2014 - 17:13

"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0