J'ai constaté que les formules et les plages de mise en forme conditionnelle s'ajustent automatiquement lorsque vous copiez, supprimez ou déplacez des données dans une feuille de calcul. Bien que ce soit une bonne idée, cela a tendance à casser les choses pour moi de manière assez étrange.
Pour éviter cela, j'ai essayé d'écrire des règles qui s'appliquaient à l' ensemble de la feuille de calcul et saisissaient les en-têtes de colonne pour mettre en évidence les données que je voulais vérifier.
Exemple: =AND(A$1="Check This Column For Blanks),ISBLANK(A1))
appliqué à=$1:$1048576
Cependant, même avec la règle explicitement appliquée à la feuille entière, elle s'ajustait toujours automatiquement (et cassait de façon étrange en le faisant) pendant que je travaillais dans la feuille.
Comment puis-je éviter ça?
Réponses:
Lorsque j'ai besoin d'une plage qui ne devrait en aucun cas changer , y compris le déplacement, l'insertion et la suppression de cellules, j'ai utilisé une plage nommée et la
INDIRECT
fonction.Par exemple, si je veux qu'une plage s'applique toujours aux cellules
A1:A50
, j'ai défini une plage nommée via le gestionnaire de noms:Dans le gestionnaire de noms, ajoutez une nouvelle plage (cliquez sur Nouveau) et dans le champ Fait référence à:, utilisez la fonction INDIRECT pour spécifier la plage de cellules souhaitée, par exemple
=INDIRECT("A1:A50")
ou=INDIRECT("Sheet!A1:A50")
. Étant donné que la plage n'est techniquement qu'un argument textuel, aucune quantité de cellules réorganisées ne provoquera la mise à jour d'Excel.En outre, cela fonctionne au moins dans Excel 2010 et Excel 2013. Bien que ma capture d'écran date de 2013, j'ai utilisé cette technique exacte en 2010 dans le passé.
Avertissements
Gardez à l'esprit que cette invariance peut également vous faire trébucher. Par exemple, si vous modifiez le nom de la feuille, la plage nommée sera rompue.
J'ai remarqué un léger impact sur les performances lors de l'utilisation de cette stratégie sur un nombre important de cellules. Un modèle que j'utilise au travail utilise cette technique avec des plages nommées qui s'étendent sur plusieurs milliers de plages de cellules disparates, et Excel se sent un peu lent lorsque je mets à jour les cellules de ces plages. Cela peut être mon imagination ou le fait qu'Excel effectue des appels de fonction supplémentaires à INDIRECT.
la source
INDIRECT
fonction seule?J'ai trouvé que les règles sont très faciles à enfreindre, mais voici quelque chose que vous pouvez essayer qui ne semble enfreindre aucune règle.
Vous pouvez modifier le texte à l'intérieur des cellules. Si vous devez ajouter une ligne, ajoutez vos données à la fin de votre tableau et triez-les à nouveau. Si vous devez supprimer une ligne, supprimez uniquement le texte / les nombres, puis triez à nouveau le tableau.
Cela fonctionne pour moi lorsque j'ai une mise en forme conditionnelle qui est appliquée aux colonnes, et je règle généralement la mise en forme pour la colonne entière, par exemple. $ F: $ F. Cela devrait toujours fonctionner si vous formatez pour une plage partielle, assurez-vous simplement que lorsque vous avez terminé d'ajouter / supprimer et d'utiliser que toutes les données que vous souhaitez mettre en forme sont toujours dans vos paramètres de plage d'origine.
C'est aussi une énorme frustration pour moi.
J'espère que ça aide.
la source
Je ne suis pas si sûr et je fais souvent face au même problème.
Je dirais que le champ «Appliquer à» du panneau de mise en forme conditionnelle (CF) fonctionnera TOUJOURS de manière dynamique. Ainsi, il convertira TOUJOURS toutes les références au format
=$A$1:$A$50
.C'est une douleur.
la source
J'ai constaté que l'utilisation de la
INDIRECT
fonction et de laROW
fonction dans la règle de mise en forme conditionnelle élimine le problème d'Excel créant de nouvelles règles et modifiant la plage.Par exemple, je voulais ajouter une ligne entre les lignes de ma feuille de calcul de registre de chéquier lorsque le mois passait d'une ligne à la suivante. Donc, ma formule dans la règle des FC est:
où la colonne C de ma feuille de calcul contient la date. Je n'ai rien eu à faire de spécial pour la plage (je n'ai pas eu à définir de nom de plage, etc.).
Ainsi, dans l'exemple de l'affiche originale, au lieu de "A1" ou "A $ 1" dans la règle CF, utilisez:
la source
J'ai rencontré un problème très similaire. J'ai créé quelques macros pour ajouter des lignes et copier des formules, puis ajuster les colonnes et les tailles de ligne pour formater l'apparence de la feuille. J'ai trouvé que ce problème se produit à l'une des deux occasions.
1) Lorsque quelque chose d'INTERIEUR le "s'applique à" est coupé / collé en dehors de cette plage.
2) Lorsqu'il y a des cellules fusionnées à l'intérieur du "s'applique à", et n'importe laquelle des lignes ou colonnes est ajustée.
Il apparaît lors du problème de fusion des cellules, qu'Excel doit tout annuler, recalculer son application conditionnelle, ajuster toutes les cellules (ajouter ou supprimer des lignes ou autre), puis les refaire retomber. C'est invisible pour nous, mais cela semble être la façon dont il est appliqué.
Pensée qui pourrait nous aider à trouver la solution à ce sujet.
-T
la source
J'ai une solution simple pour cela.
Déplacez-vous simplement vers une cellule qui est dans la plage (celle qui n'est pas cassée de la plage), cliquez sur Format Painter puis collez-la sur toute la colonne. Encore une fois, il montrera où il s'est cassé, il vous suffit de faire un peintre de format pour la cellule qui a cassé la plage. Maintenant, cela peut aussi sembler un peu long, vous pouvez simplement créer une macro simple pour cela.
la source
Dans la formule de mise en forme conditionnelle, utilisez la
R1C1
notation avec laINDIRECT
fonction:Exemple 1:
If same row column A = 1
...Exemple 2:
If same row column A = 2 AND next row column A = 3
...la source
Si le cas d'utilisation est de générer une feuille de calcul de rapport, cela devrait bien fonctionner:
Vous pouvez contourner l' utilité excessive d'Excel avec quelques étapes de configuration uniques, si vous êtes également disposé à effectuer manuellement une simple actualisation des données finales après avoir effectué toutes les entrées de données.
En supposant que vos données sont organisées normalement (en lignes):
Input
. Ne lui appliquez aucune mise en forme conditionnelle. N'hésitez pas à déplacer les valeurs vers le contenu de votre cœur (par exemple, supprimer / insérer / copier / coller)Output
). Copiez manuellement votre mise en forme globale, comme la largeur des colonnes et la mise en forme des en-têtes (pas le contenu des en-têtes, juste la mise en forme).$A$1
dans la formule suivante par l'emplacement du début de votre ligne d'en-tête, puis copiez dans toutes les colonnes et lignes que vous souhaitez générer:=IF(LEN(OFFSET(Input!$A$1,ROW()-1,COLUMN()-1))>0,OFFSET(Input!$A$1,ROW()-1,COLUMN()-1),"")
(l'IF(LEN(...)>0,...,"")
instruction est nécessaire car Excel détermine également de manière utile les types de données pour vous et utilise0
les cellules vides dans le cas contraire, et les-1
termes viennent de la sémantique offset par rapport à la sémantique ordinale)Output
feuille.Cela copie votre
Input
feuille de données sur uneOutput
feuille sans aucune référence de cellule qu'Excel supprimerait automatiquement afin que vous puissiez définir en toute confiance votre mise en forme conditionnelle sur laOutput
feuille.Il vous suffit d'étendre manuellement la plage à laquelle la formule est appliquée dans la
Output
feuille à mesure que la taille de vosInput
données change.Je vous suggère d'éviter de fusionner les cellules.
PS Cette question a été posée à plusieurs reprises (elle s'applique également dans Google Sheets, qui est un clone d'Excel), vous pouvez donc trouver une meilleure solution pour votre cas d'utilisation en les parcourant:
la source
Si vous collez sans format (
Paste > Paste Special > Unicode Text
ou similaire), le formatage spécial ne sera pas copié, et en tant que tel, la plage "S'applique à" ne devrait pas changer.Vous pouvez supprimer des lignes / colonnes, mais si vous les insérez, la gamme "S'applique à" sera divisée.
Vous étendez la zone en sélectionnant la dernière ligne / colonne et "copiez-tirez" sur le petit carré en bas à gauche du "curseur". De cette façon, la gamme "Appliquer à" doit rester intacte. (Notez que cela ne prolongera pas les formules sur les lignes ou les colonnes comme le fait l'insertion.)
C'est cependant une douleur totale de ne pas oublier de coller sans format, etc. Je ne le fais pas d'habitude.
Parfois, je définis également un nom pour la zone que je souhaite formater. Il ne sera pas utilisé dans la règle, mais vous pouvez nettoyer la règle en supprimant toutes les règles sauf une et utiliser le nom de la zone dans la section "S'applique à".
J'ai testé sur un Mac en utilisant Excel 16.3 (je pense qu'Office 2016 ... hmm).
la source