2017-01-03 3 views
1

J'ai écrit une longue fonction If dans une cellule dans une feuille de calcul Excel 2003.SI la fonction dans Excel est trop longue. Comment simplifier?

Je souhaite ajouter à cela, mais Excel me dit que ma fonction est trop longue.

Est-ce que quelqu'un sait comment simplifier ou réduire la longueur de la fonction? J'ai une liste déroulante de types de défauts, puis cette fonction IF est dans la colonne L3 pour afficher une description de défaut spécifique basée sur les types de défauts sélectionnés dans column K3.

=IF(ISTEXT(K3)=TRUE,IF(OR(K3="Abnormal Finishing",K3="Bending Mark",K3="Bent",K3="Contamination",K3="Crack",K3="Damage",K3="Dented",K3="Discoloration",K3="Finger Print",K3="Flow Mark",K3="Gap",K3="Insufficient Paint",K3="Scratches",K3="Rusty",K3="Stain Mark",K3="Standoff Mark",K3="Tool Mark",K3="Warpage",K3="Water Mark",K3="White Mark",K3="White Spot"),"Cosmetic",IF(OR(K3="Angle Out",K3="Dimension Out",K3="Fitting Problem"),"Dimension",IF(OR(K3="Assembly Misalignment",K3="Fan Broken",K3="Fan Not Functioning",K3="Assembly Wrong Orientation",K3="Missing Component",K3="Missing Rivet (Assembly)",K3="Part Warping (Assembly)",K3="Rivet Loose (Drop) (Assembly)",K3="Rivet Wrong Location (Assembly)",K3="Rivet Wrong Orientation (Assembly)",K3="Screw Loose (Drop)",K3="Screw Stuck"),"Assembly","ERROR"))),"ERROR") 

Répondre

1

Une façon simple serait de faire des listes séparées et vérifier si K3 existe dans la liste. Par exemple faire une liste dans une colonne (J ici) pour

  1. anormale Finition
  2. Bending Mark
  3. Bent
  4. contamination

utiliser cette formule pour vérifier si votre valeur K3 existe dans cette liste

=IFERROR(MATCH(K3,J11:J14,0)>0,FALSE)

J11:J14 est ma liste. Selon la formule TRUE ou FALSE

Votre formule finale ressembleraient

=IF(ISTEXT(K3),IF(IFERROR(MATCH(K3,L3:L7,0)>0,FALSE),"Cosmetic",IF(IFERROR(MATCH(K3,M3:M7,0)>0,FALSE),"Dimension",IF(IFERROR(MATCH(K3,N3:N7,0)>0,FALSE),"Assembly","ERROR"))),"ERROR") 

L3:L7, M3:M7, N3:N7 sont des listes de critères national, dimension et de l'Assemblée

Cela pourrait être firther a travaillé dessus.

+0

Et un L'avantage de cette solution est qu'il est facile d'ajouter des éléments à chaque liste. –

+0

Si vous faites des listes, vous pouvez aussi faire quelque chose comme sur la Colonne J le défaut et sur la Colonne K le type. Donc un simple 'IFERROR()' avec un 'VLOOKUP' à l'intérieur serait aussi facile d'ajouter des items et cela raccourcirait encore plus la formule – Moacir

0

Je trouve habituellement que plusieurs instructions IF peuvent être évitées en utilisant une fonction VLOOKUP. Vous avez besoin de vos conditions et les résultats dans un tableau comme celui-ci:

Coller dans A4: A39

Abnormal Finishing 
Bending Mark 
Bent 
Contamination 
Crack 
Damage 
Dented 
Discoloration 
Finger Print 
Flow Mark 
Gap 
Insufficient Paint 
Scratches 
Rusty 
Stain Mark 
Standoff Mark 
Tool Mark 
Warpage 
Water Mark 
White Mark 
White Spot 
Angle Out 
Dimension Out 
Fitting Problem 
Assembly Misalignment 
Fan Broken 
Fan Not Functioning 
Assembly Wrong Orientation 
Missing Component 
Missing Rivet (Assembly) 
Part Warping (Assembly) 
Rivet Loose (Drop) (Assembly) 
Rivet Wrong Location (Assembly) 
Rivet Wrong Orientation (Assembly) 
Screw Loose (Drop) 
Screw Stuck 

Coller dans B4: B39

Cosmetic 
Cosmetic 
Cosmetic 
Cosmetic 
Cosmetic 
Cosmetic 
Cosmetic 
Cosmetic 
Cosmetic 
Cosmetic 
Cosmetic 
Cosmetic 
Cosmetic 
Cosmetic 
Cosmetic 
Cosmetic 
Cosmetic 
Cosmetic 
Cosmetic 
Cosmetic 
Cosmetic 
Dimension 
Dimension 
Dimension 
Assembly 
Assembly 
Assembly 
Assembly 
Assembly 
Assembly 
Assembly 
Assembly 
Assembly 
Assembly 
Assembly 
Assembly 

Ensuite, vous pouvez utiliser les éléments suivants formule:

=IFERROR(VLOOKUP(K3,$A$4:$B$39,2,0),"ERROR")