Вставте клітини в Excel без оновлення сусідніх формул


3

Іноді я візуально порівнюю два набори даних, вставляючи їх поруч в Excel з формулою в середині =A1=C1. Це поверне значення true або false на основі того, чи є клітини точним відповіддю. Коли набору даних відсутній запис, я можу змусити їх знову розташуватися, просто вставивши нову клітинку і пересунувши існуючі. Однак, коли я роблю це, він оновлює формули, щоб перенести орієнтовну комірку на кількість клітин, які я вставив, наприклад:

Excel Question

Це викликає проблеми, тому що я повинен повторювати всі формули в середині кожного разу, коли це відбувається. На довгому наборі даних це стає дуже трудомістким. Чи є спосіб "заблокувати" формули в стовпцях порівняння, щоб не хвилювати, якщо я вставляю або видаляю клітини, вони завжди залишаться вказуючи на оригінальні клітинки, які я створив?

До речі, я знаю, що $ A $ 1 заблокує посилання, але це працює тільки, якщо ви переміщуєте цю клітинку навколо, не переміщуючи згадану клітинку. Якщо ви помістіть це у верхній частині і перетягнете їх вниз, вони все залишиться $ A $ 1, незалежно від того, в якому рядку ви перетягуєте (плюс, він все ще виконує оновлення після вставлення комірки в стовпці посилання).


У мене немає часу спробувати його зараз, але чи можна використовувати комбінацію OFFSET і ROW, щоб відповідати значенням у рядку формули, незалежно від того, де додаються клітини?
dav

Відповіді:


2

Якщо я розумію ваше запитання, я думаю, що це може працювати:

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

Де B1 є довільним якорем для ваших формул, і ви завжди обчислюєте зсув до комірки з будь-якої сторони вашого порівняння.


1
З вашого оригінального коментаря я не був впевнений, що робити з ROW, але я дійсно отримав його для роботи з OFFSET поодинці, так: =OFFSET(B1,0,-1)=OFFSET(B1,0,1). Я досі цікавий, якщо є спосіб заблокувати формули, але якщо ніхто нічого не опублікував у цьому випадку через кілька днів, я прийму цю відповідь. Дякую!
techturtle

Спасибі, ваша формула насправді трохи елегантніша, ніж моя. ROW () має "заблокувати" формулу до поточного рядка, але його дійсно непотрібне, як показує модифікація. Що стосується "замикання" формул, що ви намагаєтеся зробити - я не впевнений, що повністю розумію.
dav

В основному я хотів би мати можливість продовжувати користуватися =A1=C1 (простіше налаштувати і прочитати) і перетягнути його вниз, потім вибрати стовпець і сказати "Lock", щоб він більше не оновлював формулу / комірки. Я думав, що можна було налаштувати параметри, які я міг би включити тимчасово, щось на зразок "не оновлювати формули на ходу", але я не знайшов нічого, що працює.
techturtle

Добре, я думаю, що я розумію краще. Я ніколи не чув про щось подібне, хоча здається, що VBA повинна бути здатна на це (але я не дуже добре з VBA). Щоб покращити читабельність (але не зафіксовано, як ви вже згадували), можливо, можна використовувати іменні діапазони. Я побачу, чи можу я отримати щось для роботи ...
dav

2

Замість того, щоб вставляти клітинки, ви можете скопіювати клітинки, які ви хочете зсунути вниз, і використовувати спеціальні значення вставити, щоб помістити їх там, де ви їх хочете. Іншими словами, переміщення значень замість осередків запобігає регулюванню формул.


Це має спрацювати. Ви просто повертаєтеся до вершини діапазону після вставки і видалення комірки вище, то ви досягли порожнього простору, що ви хочете. Я також зробив це, маючи значення в іншому аркуші, вставляючи рядки з цим за допомогою комбінації клавіш Ctrl + Shift + Plus, і вставляючи всі з них.
Noumenon

1

Я поклав один набір даних у стовпці А, а інший - у стовпець B. Потім я вставив формулу нижче в кожну клітинку у стовпці C. ROW() Функція повертає поточний номер рядка, так що ви можете вставляти / видаляти дані у стовпці A або B без необхідності вставляти та повторно формувати ваші формули. Ви можете вставити формулу в будь-який стовпець, і він буде працювати - порівнявши стовпці А і В у рядку, в якому він знаходиться.

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

Я згоден - я бажаю, щоб було певним способом сказати Excel не міняти формули, коли ви вставляєте і видаляєте дані в стовпці.


Ласкаво просимо до Суперкористувача. Ваша відповідь не мала сенсу, тому я її "виправили". Будь ласка редагувати назад, якщо ви не згодні з моїми змінами. Удачі!
G-Man
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.