J'essaie de modifier la valeur d'une cellule dans Google Sheets en fonction de la valeur d'une cellule adjacente. Cette cellule adjacente tire sa valeur de la couleur de la cellule adjacente en utilisant la formule de this Quora answer. La valeur de la cellule doit donc changer en fonction du code hexadécimal obtenu à partir de la couleur de la première cellule. Il y a quatre valeurs hexagonales possibles pour le moment, donc j'essayais de mettre quatre instructions IF différentes dans la même cellule. Sa valeur est donc modifiée en conséquence.
Ma première tentative a conduit à une erreur d'analyse de la formule:
=if((J2="#00ff00","Read"), if(j2="#ff0000", "Unread"), if(j2="#ff9900","In Progress"), if(j2="#000000", "Not Applicable"))
Il est clair que vous ne pouvez pas simplement séparer les instructions avec des virgules. Basé sur la question this Stack Overflow, j'ai essayé ce code, avec des instructions IF imbriquées:
=if((J2="#00ff00","Read", if(j2="#ff0000", "Unread", if(j2="#ff9900","In Progress",if(j2="#000000", "Not Applicable")))))
Cela conduit également à une erreur d'analyse de formule.
Existe-t-il un moyen de simplement inclure plusieurs instructions IF dans la même cellule, ce qui fonctionnera pour mon code?
Utilisez lookup
au lieu de if
:
=lookup(B7,
{"#000000","#00ff00","#ff0000","#ff9900"},
{"Not applicable", "Read","Unread","In Progress"}
)
Notez que le deuxième paramètre doit être une liste triée.
Le problème dans les exemples fournis est la parenthèse. Appliquez-les correctement.
IF()
La fonction devrait avoir deux paramètres et éventuellement un troisième.
IF(logical_expression, value_if_true, value_if_false)
Le problème spécifique avec
IF()
extérieure a trop de paramètres.IF()
extérieure ne renvoie pas TRUE
ou FALSE
Dans les fonctions Google Sheets, les paramètres sont séparés par des virgules. Lorsque les parenthèses sont utilisées pour inclure plusieurs opérations et fonctions dans une fonction, elles sont considérées comme un paramètre de la fonction qui les contient.
Une pratique courante consiste à définir le IF interne () comme value_if_false
, mais vous pouvez le faire de différentes manières. Ajouter IF () dans un autre nom comme value_if_true
et value_if_false
est appelé IF() logical test nesting
ou simplement IF() nesting
.
Vous trouverez ci-dessous un exemple de formule comportant trois IF()
, dont deux servent à déterminer le value_if_false
du parent IF()
. Un style multiligne et vertical du style parenthèse est appliqué pour plus de lisibilité
=IF(logical_expression, value_if_true,
IF(logical_expression, value_if_true,
IF(logical_expression, value_if_true, value_if_false
)
)
)
Le style ci-dessus pourrait être utilisé dans l'écriture de formules Google Sheets. Je l'ai trouvé utile pour le débogage de formule.
Je viens de découvrir comment combiner si et ou.
Exemple:
=IF(OR(B3>49,C3>49,D3>49),”Passed”,”Failed”)
=IF(AND(B3>49,C3>49,D3>49),”Passed”,”Failed”)
=IF(OR(AND(B3>49,C3>49),AND(B3>49,D3>49),AND(C3>49,D3>49)),”Won”,”Failed”)
Donc pour votre exemple:
= if(OR(J2="#00ff00",j2="#ff0000",j2="#ff9900"),"True","False")
Source: tilisation combinée de IF, AND, OR Fonctions logiques dans une feuille de calcul Google Doc .
Vous pouvez imbriquer des instructions IF par exemple
If(if(if(when all 3 equal true)))
Travaillerait
OR
vous pouvez utiliser un IFAND imbriqué par exemple
IF(AND(AND()))
Cela fonctionnerait aussi.
On vous a proposé de la théorie et de meilleures approches, mais pour répondre précisément:
Existe-t-il un moyen de simplement inclure plusieurs instructions IF dans la même cellule, ce qui fonctionnera pour mon code?
s'il vous plaît essayez:
=if(J2="#00ff00","Read", if(J2="#ff0000", "Unread", if(J2="#ff9900","In Progress",if(J2="#000000", "Not Applicable"))))
C'est-à-dire votre deuxième tentative sans la première parenthèse ouvrante et sans la dernière parenthèse fermante.