J'essaie d'écrire une déclaration qui lira le contenu des cellules adjacentes et sélectionnera une valeur en fonction des résultats pour ponctuer un paragraphe. Tout comme la phrase ci-dessous est présentée.
Instruction 1, Instruction 2, Instruction 3.
Une virgule est incluse si l'instruction suivante a du contenu. Un point est inclus si l'instruction suivante n'a pas de contenu. Rien n'est inclus si les instructions suivantes et précédentes n'ont pas de contenu. J'ai utilisé la formule ci-dessous, mais le bit qui est censé ajouter le point renvoie FALSE:
=IF(A1<>"",IF(C1<>"",", "),IF(A1<>"",IF(C1="",". "),IF(A1="",IF(C1="",""))))
Qu'ai-je fait de mal?
4 Réponses :
Je pense que vous avez trop compliqué votre formule. Par exemple, vous testez jusqu'à 3 fois si A1 est vide
Essayez-vous d'y parvenir?
=IF(A1<>"",IF(C1<>"","; ",""),IF(C1="",". ",""))
Merci @ Jo.lass, c'est presque vrai. J'essaie de réaliser: si A1 n'est pas vide et C1 n'est pas vide =, si A1 n'est pas vide et C1 est vide =. si A1 est vide et C1 est vide = rien
Sur la base de votre formule, je viens d'essayer ceci qui fonctionne :-) = IF (A1 <> "", IF (C1 <> "", ",", "."), IF (C1 = "", "" ,"")) Merci encore pour votre aide!
Oui, je ne savais pas lequel était le bon;) merci pour les commentaires
Des malédictions, déjouées à nouveau - j'ai mis trop de temps à dessiner un organigramme de l'arbre logique
Cette partie de votre formule semble redondante car elle est déjà capturée dans les arguments logiques initiaux:
=IF(A1="","",IF(AND(B1="",C1=""),". ",", "))
Je ne comprends peut-être pas entièrement votre objectif, mais cela devrait faire l'affaire: Je suppose que les déclarations ici sont définies par les entrées dans les colonnes A, B et C et la colonne A doit être remplie en premier.
IF(A1<>"",IF(C1="",". "),IF(A1="",IF(C1="","")))
Si je suis loin, partagez votre structure de tableau / feuille avec les résultats souhaités.
L'instruction IF a ce format: = IF (
Si nous décomposons votre code dans le de la même manière, nous obtenons ceci:
=CHOOSE(1+(A1="")+2*(C1=""), ", ", FALSE, ".", "")
Le manquant renverra FALSE par défaut. p >
Maintenant, cela peut être un peu difficile à lire, alors voici une autre mise en page:
J'espère que vous pouvez voir tous les nœuds "question" en double là-bas - et aussi que le "." est impossible à atteindre, car il nécessite que A1 "" soit FALSE , et aussi TRUE . p>
En réécrivant votre code, il reste 1 terminateur "manquant":
=IF(A1="", IF(C1="", "", FALSE), IF(C1="", ".", ", "))
(Ou, si vous voulez être vraiment sophistiqué, utilisez un CHOISIR instruction :)
=IF(<Statement1>, IF_TRUE1(<Statement2>, <Value_If_True2>), IF_FALSE1(<Statement3>, IF_TRUE3(<Statement4>, <Value_If_True4>), IF_FALSE3(<Statement5>, IF_TRUE5(<Statement6>, <Value_If_True6>))))
Merde, c'est une excellente explication du problème d'origine - très visuel +1
il vous manque plusieurs [value_if_false]. Si vos tests if vont de cette façon et qu'aucun [value_if_false] n'est défini, la formule renverra "false" comme résultat
Merci @ Jo.lass mais je ne suis pas sûr de comprendre ce que vous voulez dire. De toute façon, il ne devrait pas renvoyer une fausse valeur, il devrait trouver que cette partie est vraie? SI (A1 <> "", SI (C1 = "", ".")