2009-07-03 8 views
0

J'ai modifié une déclaration que je suis arrivé de a previous answer un peu et maintenant il ressemble à ceci:Microsoft Excel Si états

= IF (C6 = $ R $ 3, IF (D6 < = 0,99, U $ 2 $, SI (ET (D6> 0,99, D6 < = 4,99), $ U $ 3, SI (ET (D6> 4,99, D6 < = 14,99), $ U $ 4, SI (ET (D6> 14,99, D3 < = 29,99), $ U $ 5, SI (ET (D6> 29,99, D6 < 99,99), $ U $ 6, ""))))), $ S $ 8)

Tout fonctionne bien jusqu'à ce que vous changiez la valeur dans la cellule D6 pour dire £ 45 quand il ramasse encore le chiffre dans la cellule U5. Est-ce que vous ou quelqu'un d'autre peut m'aider à modifier cela pour que cela fonctionne?

Je dois une déclaration à faire ce qui suit:

Si C2 = R2 et D2 est < T2 alors U2, si D2 est> T mais T3 mais < T4 puis U4 si D2 est> T4 mais < T5 puis U5, si D2 est> T5 mais < T6 alors U6 mAIS si C2 ne correspond pas à R2 alors S8

+2

1. Veuillez formater votre extrait de code et diviser sur plusieurs lignes; 2. Qu'est-ce que vous essayez d'obtenir votre formule à faire? 3. Que fait-il à la place? 4. Avez-vous un exemple des intrants et des extrants qui en résultent? – butterchicken

+0

Déplacé le contenu comme une mise à jour de la question originale ici: http://stackoverflow.com/questions/1079228/microsoft-excel-2007-if-statements – Pesto

+2

Vous voulez vraiment, vraiment, vraiment un vlookup. – Stobor

Répondre

1

Prenez tous vos problèmes et de les déchiqueter:

Si C2 = R2 et D2 est < T2 alors U2, si D2 est> T mais T3 mais < T4 puis U4 si D2 est> T4 mais < T5 alors U5, si D2 est> T5 mais < T6 alors U6 MAIS si C2 n'est pas égal à R2 alors S8

Commencez par cela en utilisant NA() pour représenter des parties qui ne sont pas encore terminés (ce qui indique la valeur #N/A dans la cellule):

=IF(C2=R2,NA(),S8) 

Ajouter la recherche basée sur D2:

=IF(C2=R2,IF(D2<T2,U2,NA()),S8) 

En supposant que la partie suivante est D2> T2 et T3 D2 < (althought strictement cette formule dit D2> = T2) et le résultat est U3:

=IF(C2=R2,IF(D2<T2,U2,IF(D2<T3,U3,NA())),S8) 

Maintenant, ajoutez entre T3 et T4:

=IF(C2=R2,IF(D2<T2,U2,IF(D2<T3,U3,IF(D2<T4,U4,NA()))),S8) 

Entre T4 et T5:

=IF(C2=R2,IF(D2<T2,U2,IF(D2<T3,U3,IF(D2<T4,U4,IF(D2<T5,U5,NA())))),S8) 

Enfin entre T5 et T6:

=IF(C2=R2,IF(D2<T2,U2,IF(D2<T3,U3,IF(D2<T4,U4,IF(D2<T5,U5,IF(D2<T6,U6,NA()))))),S8) 

Nous avons encore NA() parce que vous n » t défini le comportement pour C2 = R2 et D2> = T6


Comme Stobor dit dans le commentaire à votre question initiale, en utilisant VLOOKUP serait beaucoup mieux - voir http://office.microsoft.com/en-us/excel/HP052093351033.aspx pour plus de détails

Votre structure actuelle dans les colonnes T et U ne fonctionnera pas avec VLOOKUP parce que:

la prochaine grande valeur qui est moins que valeur de recherche est retournée

Cela signifierait que VLOOKUP renverrait U3 lorsque vous vouliez U2, U4 au lieu de U3 et ainsi de suite. Pour résoudre ce problème, vous devez déplacer toutes les entrées dans la colonne U d'une ligne, mettre une valeur factice ou =NA() dans U2 et créer une valeur dans T7 supérieure à la valeur existante dans T6