La mise en forme conditionnelle à l'aide ET() de la fonction
Je suis en train de mise en forme conditionnelle sur une feuille. J'ai besoin de remplir les cellules avec une certaine couleur en fonction des éléments suivants instruction conditionnelle:
=AND((INDIRECT(ADDRESS(4;COLUMN()))>=INDIRECT(ADDRESS(ROW();4)));(INDIRECT(ADDRESS(4;COLUMN()))<=INDIRECT(ADDRESS(ROW();5))))
Quand j'ai essayer les états ET la (les) fonction séparément, ils semblent fonctionner, mais quand je les ai mis ensemble dans la fonction, je ne vois pas de mise en forme qui se passe.
Voici un petit historique:
La ligne 4 de la "colonne" a une date (DATE1). Il y a aussi des dates sur le D et E les colonnes de la "ligne en cours" (DATE2 et DATE3). Donc, je voudrais remplir la cellule avec une couleur si DATE1 est entre DATE2 et DATE3.
Je ne vois pas pourquoi la formule n'est pas de travail. Toute aide est très appréciée.
Mise À Jour (Déc 13, 2011):
J'ai implémenté une fonction que j'appelle de la cellules, j'ai besoin de cette fonctionnalité. La fonction renvoie des valeurs entières. Ensuite, la mise en forme conditionnelle n'utilise que les entiers dans les cellules. De cette façon, la mise en forme conditionnelle est moins compliqué. Je suis de passage INDIRECT(ADRESSE(LIGNE();COLONNE())) dans la fonction que j'mettre en œuvre. Donc, j'ai toutes les informations dont j'ai besoin lorsque vous travaillez sur la relative et/ou absolue des cellules. Serait intéressant de connaître d'une façon plus simple de passer de la cellule que dans la fonction.
Remarque: ActiveCell ne semble pas fonctionner pour moi. Elle utilise les données de la cellule qui est sélectionné par le temps de l'exécution de la fonction. Ce n'est pas ce que je cherche. Je pourrais bien sûr passer à la cellule elle-même (comme dans A4 B7, etc.) mais je ne suis pas sûr si c'est vraiment important en termes de performances.
Merci à vous tous qui avez répondu à ma question.
OriginalL'auteur some user | 2011-12-12
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème avec le ET() la rupture de la mise en forme conditionnelle. Je viens de passé à essayer le traitement de l', ET que la multiplication, et ça marche! Retirez le ET() et la fonction il suffit de multiplier vos arguments. Excel va traiter les opérations booléennes 1 pour vrai et 0 pour faux. Je viens de tester cette formule et il semble fonctionner.
Les deux éditions ont eu tort. Tout d'abord, l'adresse de la fonction prend la ligne en tant que premier argument. La ligne 4 EST la ligne "D". Ce que vous avez donné est la colonne 4 & 5 sur la ligne actuelle. Aussi, la mise en forme conditionnelle applique les règles sur les cellules. Pour mettre en surbrillance une ligne entière de cette règle aura pour évaluer la valeur true pour l'ensemble de la ligne. Comme pour les opérateurs logiques, Faux a une valeur de 0 et Vrai a une valeur de 1. VRAI - VRAI = 1 - 1 = FALSE n'est pas valide OU d'une opération. Aussi, TRUE / FALSE = 1 / 0 = ERREUR n'est pas valide ET le fonctionnement. J'ai vérifié c'est la façon dont il fonctionne dans excel.
Eu le même problème, cette réponse fonctionne bien.
Est-il une solution similaire pour les Excel OU fonction (), ou encore du travail, dans les situations où la formule générale devient complexe?
Se servir de l'addition pour la OU (les)
OriginalL'auteur James
Vous pouvez utiliser beaucoup plus simple formule. Je viens de créer un nouveau classeur pour le tester.
Mettre en surbrillance la Colonne A et entrez la formule de mise en forme conditionnelle:
Manqué que peu désolé. Ainsi est la même pour chaque ligne? La DATE1 valeur est dans la même colonne 4 lignes ci-dessous? J'ai du mal à visualiser vos données. Vous pouvez joindre la feuille de calcul ou une capture d'écran?
Dans une rangée, il y a deux dates DATE2 (start) et DATE3 (fin). Et puis, à partir de la ligne 10, chaque cellule de cette ligne a une date à la ligne 4 de la colonne correspondante. Je vais essayer de joindre une capture d'écran plus tard aujourd'hui.
J'ai essayé d'imiter votre scénario et il fallait ajuster la formule =ET(A1>B5,A1<C5). Tenez-nous au courant merci
OriginalL'auteur Lee Tickett
J'ai eu un problème similaire avec un moins compliqué formule:
et a constaté que je pouvais Enlever la
AND
et joindre les deux comparaisons avec+
Espère que cela aide les autres avec moins de complexes les comparaisons.
OriginalL'auteur David
C'est probablement à cause de la colonne() et la ligne (). Je ne suis pas sûr de la manière dont ils sont appliqués dans la mise en forme conditionnelle. Essayez de créer une nouvelle colonne avec la valeur à partir de cette formule et ensuite l'utiliser pour vos besoins de mise en forme.
J'ai fini la mise en œuvre de la formule dans une fonction où je retourne entiers pour des raisons différentes. Il était assez facile d'obtenir DATE2 et DATE3 en utilisant quelque chose comme Cells(ActiveCell.Ligne, 4).De la valeur. Mais quand il s'agit d'obtenir DATE1, les Cellules(4, ActiveCell.La colonne).La valeur ne semble pas faire l'affaire. Peut-être que c'est parce que, la fonction que j'ai écrite n'est pas appelée à chaque fois que je l'ai mise à jour DATE2 ou DATE3? Je suis coincé à un point où cela fonctionne parfois et parfois n'a pas des idées?
Avez-vous déclarer votre fonction avec l'Application.Volatile?
OriginalL'auteur ivan
COLUMN()
etROW()
ne fonctionne pas de cette façon parce qu'ils sont appliqués à la cellule qui est de les appeler. Dans la mise en forme conditionnelle, vous devez être explicite au lieu de implicite.Par exemple, si vous souhaitez utiliser cette mise en forme conditionnelle sur une plage de début sur la cellule
A1
, vous pouvez essayer:Excel va automatiquement s'adapter à la mise en forme conditionnelle à la actuel cellule.
heureux que vous avez finalement trouvé une solution. Vous pouvez poster une réponse et de l'accepter, de sorte que le sujet sera en quelque sorte fermé - voir stackoverflow.com/faq#howtoask
Quand je suis totalement fini avec elle, je vais le faire. Il y a toujours hickups. Par exemple, le ActiveCell fonction renvoie la cellule sélectionnée lors de l'exécution d'un script. Qui n'a pas de sens. Donc je suis à la recherche de quelque chose qui serait de retour dans la cellule courante où la fonction est exécutée. Je vais vous revenir avec une réponse bientôt...
OriginalL'auteur JMax
Je suis actuellement responsable d'une application Excel avec beaucoup de code legacy. L'un des plus faibles des pièces de ce code était de boucler par le biais de 500 Lignes en 6 Colonnes, réglage de la mise en forme conditionnelle des formules pour chaque. Les formules sont à identifier l'endroit où le contenu de la cellule est non-vide, mais ne font pas partie d'une Plage Nommée, par conséquent, en se référant à deux reprises à la cellule elle-même, écrit à l'origine en tant que:
Évidemment les frais généraux seraient réduites par la mise à jour de toutes les Cellules de chaque Colonne (Plage) à la fois. Toutefois, comme indiqué ci-dessus, à l'aide de l'ADRESSE(LIGNE(),COLONNE(),n) ne fonctionne pas dans cette circonstance, c'est à dire ce qui ne fonctionne pas:
J'ai testé de manière approfondie un classeur vide et il ne pouvait trouver aucun moyen de contourner cela, à l'aide de diverses solutions de rechange telles que ISBLANK. En fin de compte, pour contourner ce problème, j'ai créé deux Fonctions Définies par l'Utilisateur (à l'aide d'une astuce que j'ai trouvé ailleurs sur ce site):
Le conditionnel formule est maintenant:
qui fonctionne très bien.
Ce qui a accéléré le code, dans Excel 2010, de 5 à 1s. Parce que ce code est exécuté chaque fois que les données sont chargées dans l'application, cette économie est importante et perceptible pour l'utilisateur. Il est aussi beaucoup plus propre et réutilisable.
J'ai pris le temps de poster ce parce que je ne pouvais pas trouver toutes les réponses sur ce site ou ailleurs, qui couvrent l'ensemble des circonstances, alors je suis sûr qu'il y a d'autres personnes qui pourraient bénéficier de l'approche ci-dessus, éventuellement avec un plus grand nombre de cellules de mise à jour.
OriginalL'auteur Rich Harding
Mêmes problèmes que d'autres ont signalé - à l'aide d'Excel 2016. Constaté que lors de l'application de formules conditionnelles contre tables; ET, en multipliant les conditions, et en ajoutant les conditions de l'échec. Dû créer la logique VRAI/FAUX moi-même:
OriginalL'auteur Grampa Ken