2017-10-05 9 views
1

Je souhaite modifier la sélection de l'utilisateur de la base de syntaxe de formule dans la liste déroulante Excel. Par exemple: remplacez Small par Large dans =Small(F3:F16,1), si l'utilisateur sélectionne Large dans la liste déroulante donnée.Modification de la syntaxe de la formule Excel à l'aide de la fonction indirecte

J'ai essayé ="="&INDIRECT("H2")&"(F5:F16,1)"H2 est le menu déroulant contenant Small et Large. mais ça ne marche pas.

Répondre

0

Au lieu d'utiliser réellement le texte lui-même en fonction, je voudrais simplement utiliser une déclaration IF, à savoir quelque chose comme:

= IF(H2="Large",LARGE(F5:F16,1),SMALL(F3:F16,1)) 
+0

Hey Peter, je vous remercie de l'aide rapide. oui c'est définitivement la solution, cependant j'essayais d'utiliser indirectement spécifiquement :) –

+0

@DeepakVed 'INDIRECT' est dangereux et devrait toujours être évité si possible. Il n'y a que quelques cas où cela est vraiment nécessaire. – ImaginaryHuman072889

+0

Oh Ok. IMHO je crois que indirecte n'est pas une fonction volatile. Est-ce? –

1

indirecte ne peut gamme de référence, et il ne peut pas changer une partie de la formule. vous devriez utiliser If/choose statement à la place.

=IF(H2="Small",SMALL(F3:F16,1),LARGE(F3:F16,1)) 
+0

Hey Kresimir ,, Merci pour la réponse rapide. Je pourrais finir par utiliser Si la fonction seulement :) –

+0

De rien. Veuillez cocher une des réponses en réponse. –

0

Une autre option est d'utiliser les fonctions Excel qui utilisent des numéros pour faire référence à des fonctions telles que AGGREGATE ou SUBTOTAL, par exemple

=AGGREGATE(IF(H2="LARGE",4,5),4,F3:F16)