Modifier l'instruction IF en utilisant les noms de files dans une colonne

J'ai une colonne avec les noms de files:

Excel1.xlsx Excel2.xlsx Excel3.xlsx etc etc etc 

et j'ai aussi cette déclaration IF:

= IF ('[MainExcel.xlsx] Data'! $ C $ 4 = '[Excel1.xlsx] Données'! $ C $ 4, IF ('[MainExcel.xlsx] Data'! $ E $ 4 = '[Excel1.xlsx] Données '! $ E $ 4,7, IF (' [Excel1.xlsx] Données '! $ C $ 4>' [Excel1.xlsx] Données '! $ E $ 4,5,0)))

Je tente donc de comparer une feuille de calcul Excel (Données) de tous ces files (Excel1, Excel2, Excel3, etc.) avec un Excel principal (MainExcel)

Une façon de le faire sans devoir modifier la déclaration IF une par une dans chaque rangée?

Merci d'avance!

Utilisez une combinaison de concatenate et indirect .

Comme je ne connais pas la disposition complète de votre feuille, je n'aurai pas trop de profondeur mais, par exemple

 =IF(INDIRECT(CONATENATE("[",A1,"]Data'!$C$4"))=4,TRUE,FALSE) 

Marco illustrdd illustr illustrd illustrFMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM

Vous pouvez utiliser la fonction INDIRECT pour créer des references à d'autres classurs, en utilisant des references de cellules.

À titre d'exemple, vous pouvez build.
Assumer:

  • Excel1.xlsx -> Excel3.xlsx ont respectivement les valeurs 1, 2, 3 dans la cellule A1 sur Sheet1,
  • DddddddddMMMHachachachachachachachachachachdachachachachachdachachachachachdachachachdachachachdachachachdachachachdachachachdachachachdachachdachachachdhachindddachachachachdddd
  • que les noms de files se trouvaient dans la colonne A

Marco illustréeAFMMMM citjoyeaMelMMMMMMachachachistánAIAAAAAégd aledégea aledetermemeaachachachach acogédachach illustréeaeaeaeaea aledea aledea aledea aledea aleea aleea aleea aleea ale

 =INDIRECT("'["&A1&"]Sheet1'!A1") 

En utilisant simplement ce que d'autres ont dit, en supposant que la cellule contenant le premier nom de classur "Excel1.xlsx" se trouve dans la cellule A1, essayez:

 =IF(Data!$C$4=INDIRECT("["&A1&"]Data!$C$4"),IF(Data!$E$4=INDIRECT("["&A1&"]Data!$E$4"),7,IF(INDIRECT("["&A1&"]Data!$C$4")>INDIRECT("["&A1&"]Data!$E$4"),5,0))) 

En outre, je remarque qu'il apparaît que le cas dans lequel la première comparaison est fausse n'est pas couvert par vos valeurs ultérieures (votre fonction renvoie la valeur "false").