2016-04-20 2 views
0

Ich möchte mehrere Werte für alle ausgeführten Anweisungen zurückgeben. Ich verwende die folgende Formel:Excel: Geschachtelte IF-Anweisung, wenn alle Bedingungen wahr sind, geben alle wahren Werte zurück

=IF(
AND(I4=1,J4=1),"2G", 
IF(
AND(Q4=1,V4=1),"3G", 
IF(
AND(AC4=1,AG4=1),"4G", 
"Other"))) 

jedoch dies den ersten wahren Wert aus den verschachtelten IF zurückkehrt. Ich möchte alle drei Werte, 2G 3G 4G, zurückgeben, wenn alle wahr sind. So etwas wie concatenated Ergebnis.

Antwort

4

nicht „2G3G4G“ zu erhalten und olso die „andere“ zu erhalten, wenn keine wahr ist, schlage ich vor, etwas wie folgt aus:

=TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE("  "," ",IF(AND(I4=1,J4=1)," 2G"," "),1)," ",IF(AND(Q4=1,V4=1),"3G "," "),3)," ",IF(AND(AC4=1,AG4=1),"4G"," "),5),"  ","other")) 

wenn Sie Fragen haben, fragen Sie einfach;)

EDIT:

Für Fragen, die sich ändern, während sie beantwortet werden, werde ich etwas "allgemeinen" Code zur Verfügung stellen.

Wenn Sie möchten, dass alle Lösungen erhalten ausgekleidet Sie diese verwenden können:

=SUBSTITUTE(SUBSTITUTE(TRIM(SUBSTITUTE(IF([C_1],[E_1]&" "," ")&IF([C_2],[E_2]&" "," ")&...&IF([C_n],[E_n]," "),REPT(" ",[TC]),[NS]))," ",[ND]),[SR]," ") 
  • [C_1], [C_2], ..., [C_n]: die Bedingungen für jeden anderen Ausdruck
  • [E_1], [E_2], ..., [E_n]: die Ausdrücke selbst
  • [TC]: die Gesamtzahl aller IF s in dieser Formel
  • [NS]: die expresion, wenn keine Lösung gilt
  • [ND]: Der neue delimeter Sie
  • [SR] wollen: die verwendete "space Ersatz"

Hinweis: Bei dieser Lösung können Sie nicht Ausdrücke verwenden welche Räume halten. Ersetzen Sie sie einfach durch ein Symbol, das Sie nicht verwenden, wie Unterstrich. (Ein Ausdruck wie "Exp. 1" wird "Exp._1" sein) Dies wird am Ende über die [SR] zurück geändert werden.

So Ihre Lösung würde wie folgt aussehen:

=SUBSTITUTE(SUBSTITUTE(TRIM(SUBSTITUTE(IF(OR(I4=1,J4=1),"2G "," ")&IF(AND(Q4=1,V4=1),"3G "," ")&IF(AND(AC4=1,AG4=1),"4G"," "),REPT(" ",3),"other"))," ","/"),[SR]," ") 

Weil Ihre Ausdrücke Leerzeichen enthalten nicht die [SR] -Teil übersprungen werden kann:

=SUBSTITUTE(TRIM(SUBSTITUTE(IF(OR(I4=1,J4=1),"2G "," ")&IF(AND(Q4=1,V4=1),"3G "," ")&IF(AND(AC4=1,AG4=1),"4G"," "),REPT(" ",3),"other"))," ","/") 

Wenn Sie noch Fragen haben, einfach Fragen.

+0

Eine Kombination von Ihnen und @BruceWayne macht es ein wenig kürzer; '= TRIM (SUBSTITUTE (IF (UND (I4 = J1, J4 = 1)," 2G "," ") & IF (UND (Q4 = 1, V4 = 1)," 3G "," ") & IF (AND (AC4 = 1, AG4 = 1), "4G", "", "", "OTHER") "Wenn 3 Leerzeichen zurückgegeben werden, wird" OTHER "ersetzt. –

+0

@Dirk Ich möchte "2G" nur einmal einfügen, aber wenn ich eins einchecke, wenn es prüft, ob beide Bedingungen wahr sind. Wie kann ich die if-Anweisung aufteilen, um für jeden einzelnen Text zu prüfen, aber nicht den Text für 2G hinzuzufügen? – Sarah

+1

meinst du OR (I4 = 1, J4 = 1) '? –

3

Sie haben eine einzige If() Formel, so wird es aufhören, sobald der erste TRUE gefunden wird. Stattdessen nur verketten sie:

=If(And(I4=1,J4=1),"2G","") & if(and(q4=1,v4=1),"3G","") & if(and(ac4=1,ag4=1),"4G","")

bearbeiten: Gerade dies erkannt Sie mit einer Zelle verlassen konnte, die „2G3G4G“ sagt, was ich davon ausgehen, ist nicht ganz das, was Sie wollen. Fügen Sie einfach ein Kommatrennzeichen hinzu, falls erforderlich.

edit2: Per Ihren Kommentar, können Sie dies wünschen:

=If(Or(I4=1,J4=1),"2G","") & if(Or(q4=1,v4=1),"3G","") & if(Or(ac4=1,ag4=1),"4G","")

Dies wird überprüfen, ob I4=J1oderJ4=1. Wenn eines davon 1 ist, wird "2G" zurückgegeben. Gleiches mit Q4 und V4, wenn irgendein 1 ist, gibt es "3G" zurück.

+1

Dangnabbit, du hast einen schneller als ich. –

+1

@ScottCraner - Es musste endlich passieren! Jetzt weißt du, wie ich mich manchmal fühle: P – BruceWayne

+0

@BruceWayne wenn ich die Prüfung für jede Zelle stattdessen teilen möchte, wie 'If (Und (I4 = J1)," 2G "," ") & If (Und (J4 = 1), "2G", ""), ist das noch gültig? Ich möchte "2G" nur einmal einfügen, aber wenn ich ein "if" einchecke, prüft es, ob beide Bedingungen zutreffen. – Sarah

Verwandte Themen