Insérer des cellules dans Excel sans mettre à jour les formules adjacentes

3

Parfois, je compare visuellement deux jeux de données en les collant côte à côte dans Excel avec une formule au milieu, par exemple =A1=C1. Cela renverra true ou false selon que les cellules correspondent exactement ou non. Lorsque les jeux de données manquent un enregistrement, je peux les faire se ré-aligner en insérant simplement une nouvelle cellule et en déplaçant les existants vers le bas. Cependant, lorsque je le fais, il met à jour les formules pour décaler la cellule de référence de la quantité de cellules que j'ai insérée, comme ceci:

Question Excel

Cela pose des problèmes car je dois refaire toutes les formules au milieu à chaque fois que cela se produit. Sur un long jeu de données, cela devient très fastidieux. Existe-t-il un moyen de "verrouiller" les formules dans les colonnes de comparaison pour éviter que j'insère ou supprime des cellules, elles resteront toujours en pointant sur les cellules d'origine que j'ai configurées?

En passant, je sais que $ A $ 1 verrouillera une référence, mais cela ne fonctionne que si vous déplacez cette cellule sans déplacer la cellule référencée. Si vous le placez en haut et que vous les faites glisser vers le bas, ils resteront tous $ A 1 $, quelle que soit la ligne sur laquelle vous faites glisser (en plus, la mise à jour est toujours effectuée après l'insertion d'une cellule dans la colonne de référence).

techturtle
la source
Je n'ai pas le temps de l'essayer pour l'instant, mais pourriez-vous utiliser une combinaison de OFFSET et de ROW pour faire correspondre les valeurs de la ligne de la formule, quel que soit le lieu où les cellules ont été ajoutées?
dav

Réponses:

2

Si je comprends votre question, je pense que cela peut fonctionner:

=OFFSET($B$1,ROW()-1,-1)=OFFSET($B$1,ROW()-1,1)

Où B1 est une ancre arbitraire pour vos formules et vous calculez toujours le décalage par rapport à la cellule de part et d'autre de votre comparaison.

dav
la source
1
De votre commentaire original , je ne savais pas quoi faire avec le RdM, mais je l' ai fait de travailler avec OFFSET seul, comme ceci: =OFFSET(B1,0,-1)=OFFSET(B1,0,1). Je suis toujours curieux de savoir s’il existe un moyen de verrouiller les formules, mais si personne n’a rien publié à ce sujet dans quelques jours, j’accepterai cette réponse. Merci!
techturtle
Merci, votre formule est en fait un peu plus élégante que la mienne. Le ROW () doit "verrouiller" la formule à la ligne actuelle, mais est vraiment inutile comme le montre votre modification. En ce qui concerne le "verrouillage" des formules, que voulez-vous accomplir? Je ne suis pas sûr de comprendre complètement.
dav
En gros, j'aimerais pouvoir continuer à utiliser =A1=C1(plus facile à configurer et à lire) et le faire glisser vers le bas, puis sélectionnez la colonne et dites "Verrouiller" pour qu'il ne mette plus à jour la formule / les cellules. Je pensais qu'il y avait peut-être un paramètre dans les options que je pouvais activer temporairement, par exemple "ne pas mettre à jour les formules au moment du déplacement", mais je n'ai rien trouvé qui fonctionne.
techturtle
Ok, je pense que je comprends mieux. Je n'ai jamais entendu parler de quelque chose comme ça, bien qu'il semble que VBA devrait en être capable (mais je ne suis pas très bon avec VBA). Pour améliorer la lisibilité (mais à moins de verrouiller comme vous l'avez mentionné), vous pouvez probablement utiliser des plages nommées. Je vais voir si je peux obtenir quelque chose à travailler ...
dav
2

Au lieu d'insérer des cellules, vous pouvez copier les cellules que vous souhaitez décaler et utiliser des valeurs de collage-special pour les placer où vous le souhaitez. En d'autres termes, déplacer les valeurs au lieu des cellules empêchera les formules de s'ajuster.

Nick Russo
la source
Cela devrait bien fonctionner. Il vous suffit de revenir en haut de la plage après le collage et de supprimer la cellule ci-dessus, vous avez alors atteint l'espace vide souhaité. Je l'ai également fait en ayant les valeurs dans une feuille différente, en insérant des lignes avec Ctrl + Maj + Plus et en les collant toutes.
Noumenon le
1

J'ai mis un ensemble de données dans la colonne A et l'autre dans la colonne B. Ensuite, j'ai collé la formule ci-dessous dans chaque cellule de la colonne C. La ROW()fonction renvoie le numéro de la ligne actuelle, vous pouvez donc insérer / supprimer des données dans la colonne A ou B sans avoir à coller et repaste vos formules. Vous pouvez coller la formule dans n’importe quelle colonne et cela fonctionnera toujours - en comparant les colonnes A et B dans la ligne dans laquelle elle se trouve.

=IF(INDIRECT(ADDRESS(ROW(),1)) = INDIRECT(ADDRESS(ROW(),2)), "ok", "***diff***")

Je suis d'accord - j'aimerais qu'il y ait un moyen d'indiquer à Excel de ne pas modifier les formules lorsque vous insérez et supprimez des données dans une colonne.

Dan
la source
Bienvenue sur Super User. Votre réponse n'avait pas vraiment de sens, alors je l'ai "corrigée". Veuillez le modifier si vous n'êtes pas d'accord avec mes modifications. Bonne chance!
G-Man