Як утримати формули та діапазони умовного форматування від автоматичного зміни?


24

Я виявив, що формули та діапазони умовного форматування автоматично регулюються при копіюванні, видаленні чи переміщенні даних у таблиці. Хоча це гарна ідея, вона, як правило, руйнує речі якимось досить дивними способами.

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

Приклад: =AND(A$1="Check This Column For Blanks),ISBLANK(A1))застосовано до=$1:$1048576

Однак, навіть якщо правило, явно застосоване до всього аркуша, воно все одно автоматично коригувалось (і ламалося дивними способами, роблячи це), як я працював у аркуші.

Як я можу цього уникнути?


Можливо, ви просто не можете використовувати всю електронну таблицю ... Чи можете ви навести конкретніший приклад того, що ви робите?
Докторо Рейхард

Ви можете, можливо, зробити скріншот і вказати, які області порушуються?
Джеррі

@JohnBensin Це здається, що це саме те, що я шукав. Я спробую згадати це наступного разу.
Іссі

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

Стаття про те, що саме йде не так: Кошмар умовного форматування Excel 2010 . Вони впевнено зробили це набагато гірше, намагаючись зробити його трохи кращим ...
RomanSt

Відповіді:


7

Коли мені потрібен діапазон, який не повинен змінюватися ні за яких обставин, включаючи переміщення, вставлення та видалення комірок, я використовував названий діапазон та INDIRECTфункцію.

Наприклад, якщо я хочу, щоб діапазон завжди застосовувався до комірок A1:A50, я визначив іменований діапазон через Менеджер імен:

додати названий діапазон

У Менеджері імен додайте новий діапазон (натисніть кнопку Створити), а в полі Посилання на: використовуйте функцію INDIRECT, щоб вказати потрібний діапазон комірок, наприклад, =INDIRECT("A1:A50")або =INDIRECT("Sheet!A1:A50"). Оскільки діапазон технічно є лише текстовим аргументом, жодна кількість переставляючих комірок не призведе до оновлення Excel.

Крім того, це працює як мінімум у програмах Excel 2010 та Excel 2013. Хоча мій знімок екрана з 2013 року, у минулому я використовував цю точну техніку.

Коваджі

  1. Майте на увазі, що ця інваріантність також може вас подолати. Наприклад, якщо ви зміните ім'я аркуша, названий діапазон порушиться.

  2. Я помітив незначне враження щодо продуктивності при використанні цієї стратегії на значній кількості комірок. Модель, яку я використовую на роботі, використовує цю техніку з названими діапазонами, які охоплюють кілька тисяч різних діапазонів комірок, і Excel відчуває себе млявим, коли я оновлюю комірки в цих діапазонах. Це може бути моя фантазія, або може бути факт, що Excel здійснює додаткові дзвінки функцій в INDIRECT.


Хоча названий діапазон забезпечує зручний короткий метод посилання на цільові комірки, ви не могли просто використати INDIRECTфункцію самостійно?
Іссі

@Iszi Так, я вважаю, що так. Однак, як ви кажете, названі діапазони зручні, і я часто можу посилатися на один і той же діапазон комірок у декількох місцях у робочій книжці. Я намагаюся зберегти діапазони якомога меншими з міркувань продуктивності і змінювати їх лише при необхідності, тому використання названого діапазону означає, що мені потрібно змінити його лише в одному місці.
Джон Бенсін

@Iszi Ви взагалі використали цей метод? Якщо ви зіткнулися з будь-якими підводними каміннями або недоліками, про які я не згадував, дайте мені знати або відредагуйте їх у відповіді. Я використовую цю стратегію в достатній кількості місць, щоб не хотіти, щоб щось переслідувало вас або я в дорозі.
Джон Бенсін

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

9
Я намагався використовувати названий діапазон у стовпці "Застосовує до" Менеджера правил умовного форматування, але названий діапазон розширюється, коли натискаю "ОК" або "Застосувати". Чи я це роблю неправильно?
Міхай Олександру Борсан

2

Я виявив, що правила дуже легко порушити, але ось ви можете спробувати, що, здається, не порушує жодних правил.

Ви можете змінити текст всередині комірок. Якщо вам потрібно додати рядок, додайте свої дані в кінці таблиці та пересортуйте їх. Якщо вам потрібно видалити рядок, видаліть лише текст / цифри, а потім пересортуйте таблицю.

Це працює для мене, коли у мене є умовне форматування, яке застосовується до стовпців, і я зазвичай встановлюю форматування для всього стовпця, наприклад. $ F: $ F. Він все одно повинен працювати, якщо ви форматуєте для часткового діапазону, просто переконайтеся, що коли ви закінчите додавати / видаляти та вдаватися до того, що всі дані, які ви хочете відформатувати, все ще знаходяться у вихідних параметрах діапазону.

Це теж величезне розчарування для мене.

Я сподіваюся, що це допомагає.


1

Я не ТАК впевнений , і я стикаюся з тією ж проблемою часто.

Я б сказав, що поле "Застосувати до" на панелі "Умовне форматування" (КФ) ВЖЕ завжди буде працювати динамічно. Отже, ЗАВЖДИ буде конвертувати будь-які посилання у формат =$A$1:$A$50.

Це біль.


Це не відбувається, навіть коли я використовую явні або змінні декларації ($ чи ні $).
Павло

1

Я виявив, що використання INDIRECTфункції та ROWфункції в правилі Умовне форматування усуває проблему створення Excel нових правил та зміни діапазону.

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

=MONTH(INDIRECT("C"&ROW()))<>MONTH(INDIRECT("C"&ROW()-1))

де стовпець С в моїй таблиці містить дату. Мені не доводилося робити нічого особливого для діапазону (не потрібно було визначати ім'я діапазону тощо).

Тож у прикладі оригінального афіші замість "A1" або "A $ 1" у правилі CF використовуйте:

INDIRECT("A"&ROW())

0

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

1) Якщо щось із INSIDE, то "застосовується до" вирізається / вставляється поза цього діапазону.

2) Коли об'єднані комірки всередині "застосовується до", і будь-який із рядків або стовпців коригується.

Виявляється, під час випуску об’єднаних комірок, excel повинен скасувати все, перерахувати його умовне застосування, відрегулювати всі комірки (додати чи видалити рядки чи що ні), а потім повернути їх назад. Він невидимий для нас, але це, мабуть, як застосовується.

Думка, яка може допомогти нам вирішити це питання.

-T


0

У мене є просте рішення для цього.

Просто перейдіть до клітинки, яка знаходиться в діапазоні (тієї, що не порушена діапазону), натисніть на Формат художника та вставте на весь стовпець. Знову він покаже, де він зламався, вам просто потрібно зробити «Форматор малюнка до комірки», який порушив діапазон. Тепер це теж може здатися трохи тривалим, ви можете просто створити для цього простий макрос.


0

У формулі умовного форматування використовуйте R1C1позначення з INDIRECTфункцією:
Приклад 1:

If same row column A = 1 ...

=IF($A1=1,1,0) becomes 
=IF(INDIRECT("RC1",FALSE)=1,1,0)

Приклад 2:
If same row column A = 2 AND next row column A = 3...

=IF(AND(($A1=2),($A2=3)),1,0) becomes
=IF(AND((INDIRECT("RC1",FALSE)=2),(INDIRECT("R[1]C1",FALSE)=3)),1,0)

0

Якщо випадок використання полягає у створенні електронної таблиці звітів, це має працювати добре:


Ви можете обійти зайву корисність Excel за допомогою декількох одноразових кроків налаштування, якщо ви також бажаєте вручну виконати просте оновлення підсумкових даних після введення всіх даних.

Припустимо, що ваші дані розташовані нормально (рядками):

  1. Введіть усі свої дані на один аркуш. Для цього підручника я назву аркуш Input. Не застосовуйте до нього жодного умовного форматування. Не соромтеся зміщувати значення навколо змісту серця (наприклад, видалити / вставити / скопіювати / вставити)
  2. Створіть ще один порожній аркуш і назвіть його так, як вам подобається (наприклад Output). Копіюйте вручну на ваше глобальне форматування, наприклад ширину стовпців та форматування заголовків (не вміст заголовків, а лише форматування).
  3. Замініть $A$1в наступній формулі розташування початку рядка заголовка, а потім скопіюйте всі стовпці та рядки, які ви хочете вивести: =IF(LEN(OFFSET(Input!$A$1,ROW()-1,COLUMN()-1))>0,OFFSET(Input!$A$1,ROW()-1,COLUMN()-1),"") ( IF(LEN(...)>0,...,"")твердження необхідне, оскільки Excel також корисно визначає типи даних для вас та використовує 0для порожніх комірок в іншому випадку, і ці -1терміни походять від зсуву в залежності від порядкової семантики)
  4. Застосовуйте умовне форматування до Outputаркуша.

Це копіює ваш Inputаркуш даних на Outputаркуш без будь-яких посилань на комірки, які Excel би автоматично розрізав, щоб ви могли впевнено визначити своє умовне форматування на Outputаркуші.

Вам просто потрібно вручну розширити діапазон, до якого застосовується формула на Outputаркуші, коли розмір ваших Inputданих змінюється.

Я пропоную вам уникати об'єднання будь-яких комірок.


PS Це запитання задавали неодноразово (воно також застосовується в Google Sheets, що є клоном Excel), щоб ви могли знайти краще рішення для вашої справи, переглядаючи їх:

  1. Фрагментація умовного форматування Excel
  2. (ця) Як утримати формули та діапазони умовного форматування від автоматичного зміни?
  3. Збережіть умовне форматування на вирізаній пасті
  4. Excel: як назавжди застосувати умовне форматування до всієї електронної таблиці?
  5. Чому Excel розкроює моє умовне форматування?

0

Якщо ви вставите без формату ( Paste > Paste Special > Unicode Textабо подібного), спеціальне форматування не буде скопійовано, і таким чином, "Звертається до" -рандіограф не повинен змінюватися.

Ви можете видалити рядки / стовпці, але якщо вставити їх, діапазон "Застосовується до" буде розділений.

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

Однак, мабуть, загальний біль пам’ятати, щоб вставити без формату і т. Д. Я зазвичай цього не роблю.

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

Я тестував на Mac за допомогою Excel 16.3 (я думаю, Office 2016 ... хм).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.