Я пытаюсь выполнить условное форматирование, чтобы цвет ячейки изменился, если значение отличается от значения в ячейке слева от него (каждый столбец - месяц, в каждой строке - расходы на определенный объект. Я хочу отслеживать легко меняются цены в течение нескольких месяцев.)
Я могу сделать это для каждой ячейки и форматировать, перетащив ее, но я бы хотел, чтобы общая формула применялась ко всему листу.
Благодаря!
=INDIRECT("RC[1]",0)
Ответы:
источник
="OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())),0,-1)=""xyz"""
но ячейка не форматируется». Что случилось?Самая короткая и наиболее совместимая версия:
«RC [-1]» означает один столбец слева. «R [1] C [-1]» находится внизу слева.
Второй параметр 0 означает, что первый параметр интерпретируется с использованием нотации R1C1.
Другие варианты:
На мой взгляд, слишком долго. Но полезно, если относительное значение динамическое / получено из другой ячейки. например:
Самый простой вариант:
имеет недостаток, заключающийся в том, что вам нужно включить нотацию R1C1 с помощью параметров, что недопустимо, когда другим людям приходится использовать Excel.
источник
При создании условного форматирования установите диапазон, в котором оно применяется к тому, что вы хотите (весь лист), затем введите относительную формулу (удалите
$
знаки), как если бы вы форматировали только верхний левый угол.Excel соответствующим образом применит форматирование к остальным ячейкам.
В этом примере, начиная с B1, левая ячейка будет A1. Просто используйте это - никаких сложных формул не требуется.
Если вы ищете что - то более продвинутый, вы можете играть с
column()
,row()
иindirect(...)
.источник
Если вы измените ссылку на ячейку, чтобы использовать нотацию R1C1 (Инструменты | Параметры, вкладка Общие), вы можете использовать простую нотацию и вставить ее в любую ячейку.
Теперь ваша формула проста:
источник
Вместо того, чтобы писать очень длинные:
Вы можете просто написать:
Таким образом, например, вы можете написать в ячейку B2 :
для ссылки на ячейку B1
Тем не менее спасибо Джейсону Янгу !! Без вашего ответа я бы никогда не придумал это решение!
источник
заполните ячейку A1 следующей формулой:
Затем автоматически продлите вправо, вы получите
Если смещение вне диапазона доступной ячейки, вы получите # ССЫЛКА! ошибка.
Надеемся, вам понравится.
источник
Еще проще:
OFFSET возвращает ссылку относительно текущей ссылки, поэтому, если косвенный возвращает правильную ссылку, она вам не нужна.
источник
При создании определенного пользователя функции , я обнаружил, что другие ответы с участием функции
OFFSET
иINDIRECT
не могут быть применены.Вместо этого вы должны использовать
Application.Caller
для ссылки на ячейку, в которой использовалась определяемая пользователем функция (UDF). На втором этапе вы конвертируете индекс столбца в имя соответствующего столбца.Наконец, вы можете ссылаться на левую ячейку, используя функцию Range активного листа .
Function my_user_defined_function(argument1, argument2) ' Way to convert a column number to its name copied from StackOverflow ' http://stackoverflow.com/a/10107264 ' Answer by Siddarth Rout (http://stackoverflow.com/users/1140579/siddharth-rout) ' License (if applicable due to the small amount of code): CC BY-SA 3.0 colName = Split(Cells(, (Application.Caller(1).Column - 1)).Address, "$")(1) rowNumber = Application.Caller(1).Row left_cell_value = ActiveSheet.Range(colName & rowNumber).Value ' Now do something with left_cell_value
источник
Вы можете использовать сценарий VBA, который изменяет условное форматирование выделения (возможно, вам придется соответствующим образом настроить условие и форматирование):
источник
Я наткнулся на эту ветку, потому что хотел всегда ссылаться на «ячейку слева», но СОВЕРШЕННО в энергонезависимой форме (без смещения, косвенных и подобных катастроф). Глядя в сеть вверх и вниз, ответов нет. (Эта ветка на самом деле тоже не дает ответа.) После некоторого размышления я наткнулся на самый удивительный метод, которым я хотел бы поделиться с этим сообществом:
Предположим, что начальное значение 100 в E6. Предположим, я ввожу дельту этого значения в F5, скажем 5. Затем мы вычислим значение продолжения (105) в F6 = E6 + F5. Если вы хотите добавить еще один шаг, просто: просто скопируйте столбец F в столбец G и введите новую дельту в G5.
Это то, что мы делаем периодически. В каждом столбце есть дата, и эти даты ДОЛЖНЫ БЫТЬ в хронологическом порядке (для помощи в MATCH и т. Д.). Очень часто случается, что мы забываем ввести шаг. Теперь предположим, что вы хотите вставить столбец между F и G (чтобы наверстать упущенное) и скопировать F в новый G (чтобы заново заполнить формулу продолжения). Это НИЧЕГО не может быть полной катастрофой. Попробуйте - H6 теперь скажет = F6 + H5 и НЕ (поскольку нам это абсолютно необходимо) = G6 + H5. (Новый G6 будет правильным.)
Чтобы это сработало, мы можем самым удивительным образом запутать этот банальный расчет F6 = index ($ E6: F6; 1; columns ($ E1: F1) -1) + F5. Скопируйте вправо, и вы получите G6 = index ($ E6: G6; 1; columns ($ E1: G1) -1) + G5.
Это никогда не должно работать, правда? Круговая ссылка, понятно! Попробуйте и удивитесь. Excel, кажется, понимает, что, хотя диапазон INDEX охватывает ячейку, которую мы пересчитываем, сама эта ячейка не адресуется INDEX и, следовательно, НЕ создает циклическую ссылку.
Так что теперь я дома и сухой. Вставьте столбец между F и G, и мы получим именно то, что нам нужно: значение продолжения в старом H будет относиться к значению продолжения, которое мы вставили в новый G.
источник
Почему бы просто не использовать:
источник
Сделайте именованную формулу "LeftCell"
Для тех, кто ищет энергонезависимый ответ, вы можете сделать это, используя функцию ИНДЕКС в именованной формуле.
Выберите ячейку A2
Открыть
Name Manager
(Ctrl + F3)Нажмите
New
Назовите его LeftCell (или как хотите)
Для
Scope:
выберитеWorkbook
В
Refers to:
введите формулу:=INDEX(!A1:!A2, 1)
Нажмите
OK
и закройтеName Manager
Это указывает Excel всегда смотреть на значение непосредственно слева от текущей ячейки и будет динамически изменяться при выборе разных ячеек. Если имя используется отдельно, оно предоставляет значение ячейки, но в диапазоне использует ссылку. Кредит на этот ответ о ссылках на ячейки для идеи.
источник
Думаю, это самый простой ответ.
Используйте «Имя» для ссылки на смещение.
Допустим, вы хотите просуммировать столбец (столбец A) до ячейки, содержащей суммирование (например, ячейка A100), но не включая ее; сделай это:
(Я предполагаю, что при создании имени вы используете ссылку A1; впоследствии можно переключить R1C1)
источник
Выберите весь лист и нажмите HOME> Styles - Conditional Formatting, New Rule ..., Используйте формулу, чтобы определить, какие ячейки нужно форматировать, и форматируйте значения, в которых эта формула верна :
Format...Выберите выбор форматирования OK, OK.
источник