Как скопировать условное форматирование в Excel 2010 в другие ячейки, основанные на содержимом других ячеек? - PullRequest
5 голосов
/ 23 ноября 2011

Мне нужно скопировать условное форматирование на основе формулы в другие ячейки, но мне нужно изменить формулу для каждого условия ячейки. как я могу сделать копию этого условия, чтобы формула также изменилась соответственно? в ячейках, если копировать ячейки с формулой, ссылающейся на другие ячейки, то Excel соответствующим образом изменит ссылающуюся ячейку. Но я не знаю, как сделать то же самое в условном форматировании, чтобы мне не нужно было менять условную формулу вручную:

условие: = К21 + $ F22 (условная формула, которую я положил в ячейку К22) условие: = AB21 + $ F22 (условная формула, которая мне нужна в ячейке AB22)

Поскольку у меня есть более 10000 ячеек для применения моей формулы условного форматирования, практически невозможно набрать эту формулу вручную в каждой отдельной ячейке. Есть ли способ сделать это автоматически?

Я не знаю VB, но я могу узнать, есть ли решение только там. Но, пожалуйста, не дайте мне сокращения и объясните мне полностью.

Большое спасибо! Шахаб

Ответы [ 5 ]

5 голосов
/ 02 августа 2012

Я столкнулся с той же ситуацией, когда при копировании формулы в другую ячейку формула все еще ссылалась на ячейку, использованную в первой формуле.Чтобы исправить это при настройке правил, выберите параметр «использовать формулу, чтобы определить ячейки для форматирования. Затем введите в поле свою формулу, например, H23 * .25. При копировании ячеек вниз формулы изменятся наH24 * .25, H25 * .25 и т. Д. Надеюсь, это поможет.

2 голосов
/ 13 мая 2013

Это можно сделать с помощью инструмента «Условное форматирование» на вкладке «Главная» в Excel 2010.

Предполагая, что существующее правило: «Используйте формулу, чтобы определить, какие ячейки форматировать»:

Отредактируйте существующее правило, чтобы «Формула» ссылалась на относительные строки и столбцы (например, удалить $ s), а затем в поле «Применимо к» щелкните значок, чтобы сделать лист текущим, и выберите ячейки, которые вы хотите применить форматирование (здесь абсолютные ссылки на ячейки в порядке), затем вернитесь на панель инструментов и нажмите «Применить».

Это сработает при условии, что относительные смещения соответствуют всему желаемому диапазону применения.

Вы можете скопировать условное форматирование из одной ячейки в другую или диапазон, используя функции копирования и вставки, только с форматированием, при условии, что вы не против скопировать обычное форматы.

1 голос
/ 23 ноября 2011

условие: = K21 + $ F22

Это НЕ СОСТОЯНИЕ.Это ЗНАЧЕНИЕ.СОСТОЯНИЕ, оценивается как BOOLEAN-значение (True / False) Если True, то формат применяется.

Это будет СОСТОЯНИЕ, например

condition: =K21+$F22>0

В общем, при примененииCF для диапазона,

1) select the entire range that you want the Conditional FORMAT to be applied to.

2) enter the CONDITION, as it relates to the FIRST ROW of your selection.

CF соответственно будет применяться через диапазон.

0 голосов
/ 30 октября 2017

У меня тоже была эта проблема, и я не смог ее решить без использования VBA.

В моем случае у меня была таблица с числами, которые я хотел отформатировать, и соответствующая таблица рядом с нужными значениями форматирования.

т.е. В то время как столбец F содержит значения, которые я хочу отформатировать, требуемое форматирование для каждой ячейки фиксируется в столбце Z, выраженном как «КРАСНЫЙ», «ЯНТАРЬ» или «ЗЕЛЕНЫЙ».

Быстрое решение ниже. Вручную выберите диапазон, к которому нужно применить условное форматирование, а затем запустите макрос.

   Sub ConditionalFormatting()
For Each Cell In Selection.Cells
With Cell
    'clean
    .FormatConditions.Delete

    'green rule
    .FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=$Z" & Cell.Row & "=""GREEN"""
    .FormatConditions(.FormatConditions.Count).SetFirstPriority
    With .FormatConditions(1).Font
        .Color = -11489280
        .TintAndShade = 0
    End With
    .FormatConditions(1).StopIfTrue = False

    'amber rule
    .FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=$Z" & Cell.Row & "=""AMBER"""
    .FormatConditions(.FormatConditions.Count).SetFirstPriority
    With .FormatConditions(1).Font
        .ThemeColor = xlThemeColorAccent6
        .TintAndShade = -0.249946592608417
    End With
    .FormatConditions(1).StopIfTrue = False

    'red rule
    .FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=$Z" & Cell.Row & "=""RED"""
    .FormatConditions(.FormatConditions.Count).SetFirstPriority
    With .FormatConditions(1).Font
        .Color = -16776961
        .TintAndShade = 0
    End With
    .FormatConditions(1).StopIfTrue = False
End With

Next Cell

End Sub
0 голосов
/ 02 ноября 2016

Мне это тоже нужно!Моя ситуация заключается в сравнении фактических данных с бюджетом для центров затрат, где расходы могли быть неправильно применены и, следовательно, должны быть перераспределены в соответствующий центр затрат, чтобы соответствовать их бюджету.Попытка сканирования построчно занимает много времени, чтобы определить, правильно ли распределены все статьи расходов.Я решил, что должен применить условное форматирование, чтобы выделить все ячейки, где фактические данные не соответствуют бюджету.Я установил условное форматирование, чтобы изменить цвет фона, если фактическая сумма по МВЗ не соответствует бюджетной сумме.

Вот что я сделал:

Начало в ячейке A1 (илипервая ячейка, которую вы хотите иметь форматирование).Откройте диалоговое окно «Условное форматирование» и выберите «Применить форматирование на основе формулы».Затем я написал формулу для сравнения одной ячейки с другой, чтобы определить, совпадают ли они:

=A1=A50

Если содержимое ячеек A1 и A50 одинаково, будет применено условное форматирование.ВНИМАНИЕ: нет $$, поэтому ссылки на ячейки ОТНОСИТЕЛЬНО!Следовательно, вы можете скопировать формулу из ячейки A1 и PasteSpecial (формат).Если вы нажмете только те ячейки, на которые ссылаетесь при написании формулы условного форматирования, ячейки по умолчанию заблокированы, поэтому вы не сможете применить их где-либо еще (вам придется выписывать новое правило для каждогоline- YUK!)

Что действительно здорово, так это то, что если вы вставляете строки в условно отформатированную ячейку, условное форматирование будет применяться и к вставленным строкам!

Что-то еще, что вы также можете сделать с этим: Используйте ISBLANK, если суммы не будут точными совпадениями, но вы хотите увидеть, отображаются ли расходы в столбцах, где нет бюджетных сумм (т.е.Пустой).

Это сэкономило мне время.Попробуйте и наслаждайтесь!

...