J'utilise la formule Excel ci-dessous, mais j'obtiens une erreur indiquant que "vous avez entré trop d'arguments pour cette fonction". Existe-t-il un autre moyen de faire fonctionner cette fonction s'il vous plaît?
S'il vous plaît excuser pour cette question de base. Je ne suis pas un expert en Excel.
IF((OR(AF2="CitiCMT", AF2="AML APAC ATHENA", AF2="AML EMEA", AF2="AML Americas")),"AML","", IF((OR(AF2="CitiScreening", AF2="Offshore Wealth Services", AF2="CitiScreening China")),"CitiScreening","", IF((OR(AF2="CitiScreening", AF2="Offshore Wealth Services", AF2="CitiScreening China")),"CitiScreening","", IF((OR(AF2="Registrations", AF2="Trade Surveillance - Markets", AF2="Reg-Reporting", AF2="Trade Surveillance - IBSG", AF2="eCADD", AF2="EmDD", AF2="Trade Surveillance", AF2="Trade Surveillance - Retail")),"Core Compliance",""))))
Réponses:
Voici un autre moyen d’écrire votre fonction. Chaque niveau serait un argument pour la fonction un niveau au dessus. Si vous consultez la documentation des fonctions IF et OR, vous verrez que, comme le dit l'erreur, vous avez fourni de nombreux arguments à certaines de ces fonctions. À savoir certaines des fonctions if. Le seul correct IF semble être le plus profond imbriqué, chaque autre instance a 4 arguments. Si vous supprimez les
"",
entrées, cela devrait fonctionner.la source
Je mettrais en place un tableau avec vos entrées possibles et sortie souhaitée sur une autre feuille:
J'ai appelé le mien
Codes
Ensuite, il suffit d’un VLOOKUP pour renvoyer la chaîne désirée:
Ceci est maintenant facilement extensible s'il y a de nouvelles entrées et sorties, sans qu'il soit nécessaire de changer la formule. On ajouterait simplement les critères et les résultats au tableau.
la source
Votre problème est la façon dont vous enchaînez les déclarations if.
Une déclaration if dans excel if est toujours dans le format suivant:
Vous les avez enchaînés comme
Cela n'a aucun sens, parce que vous dites
Pour chaîner ensemble des déclarations, vous avez deux options:
Définissez chaque instruction if suivante comme condition FALSE de l'instruction if précédente. Donc, vous dites "Si quelque chose est vrai, affichez-le. Dans le cas contraire, passez à l'instruction if suivante". en langage Excel soit:
=IF(CONDITION1,OUTPUT1,IF(CONDITION2,OUTPUT2,IF(CONDITION3,OUTPUT3,"")))
Concaténer un tas de si déclarations ensemble. Donc, cela revient à dire "si quelque chose est vrai, alors affichez ceci, sinon rien ne s'affiche. Aussi, si quelque chose d'autre est vrai, alors affichez ceci.
=IF(CONDITION1,OUTPUT1,"") & IF(CONDITION2,OUTPUT2,"") & IF(CONDITION3,OUTPUT3,"")
Notez que dans le premier cas, dès que l'une des conditions est remplie, la formule est complète, alors que dans le second cas, toutes les conditions sont toujours testées. Cela signifie que:
la méthode 1 est plus rapide
La méthode 2 fonctionne lorsque plusieurs conditions peuvent être remplies.
Donc, avec votre exemple, vous auriez soit
ou
Dans votre cas, une cellule ne peut pas être à la fois "citiscreening" et "registration". Il est donc plus logique d’utiliser la première, bien que si la rapidité n’est pas si importante que cela, la seconde peut être plus facile à lire et plus facile à lire. modifier, car il n'y a pas beaucoup de crochets à faire correspondre.
conseils:
Notez que vous pouvez fractionner une formule sur plusieurs lignes en appuyant sur alt + entrée, cela facilitera la lecture et n'affectera pas le résultat de la formule.
Excel fournit un toolyip très pratique qui vous indique l’argument en gras de votre curseur. De plus, si vous cliquez sur l'argument, cette partie de la formule sera mise en évidence.
Dans votre fonction d'origine, vous pouvez voir qu'il y avait trop d'arguments, car après le premier "", rien n'est en gras.
au cas où cela serait utile, voici la réponse ci-dessus en pseudocode:
Option 1.
Option 2:
la source