2017-02-07 4 views
0

У меня есть большой файл Excel, который я использую для сбора данных из нескольких источников о некоторых событиях (назовем их Event1, Event2, Event3 ...). Поскольку несколько источников могут предоставлять информацию об одном и том же событии, для каждого источника, ссылающегося на одно и то же событие, я вставляю новую строку и новый идентификатор (ниже приведен пример: у меня есть несколько источников, описывающих Event1, поэтому я сортирую их с использованием разных идентификаторов , т.е. 1.1, 1.2, ...)Excel: автоматический цвет линии в соответствии с вводом

Чтобы облегчить визуализацию этих данных, я хотел бы покрасить фон всех записей, относящихся к одному и тому же событию, с тем же цветом, как показано на изображении ниже. Например, все строки, чья первая ячейка имеет целое число 1, должны быть серыми, все из них с целым числом 2 должны быть розовыми и так далее. Однако я не нашел никакой функции или команды, чтобы автоматически это делать. Есть ли способ сделать это в Excel автоматически?

Example

ответ

1

Вы должны быть в состоянии использовать этот метод ДО 3 шага: http://www.dummies.com/software/microsoft-office/excel/highlight-excel-cells-based-on-the-value-of-another-cell/

В шаге 3, необходимо положить в формуле, определенной для ваших нужд. Я не проверял это, но либо должно работать: =SEARCH("1", A1)>1 (где A1 является ссылкой на ячейку в камеру в Entry ID колонке) - то, что вы говорите здесь найти/сопрягать любую ячейку, которая начинается со значением 1 =IF(LEFT(A1,1)="1") (где A1 - ссылка на ячейку в ячейке в колонке Entry ID) - то, что вы говорите здесь, находится слева от 1 символа в ячейке A1, и если это 1, то это соответствует.

Ссылки:
https://www.ablebits.com/office-addins-blog/2014/06/10/excel-conditional-formatting-formulas/
If Cell Starts with Text String... Formula

+0

Ваше предложение работает. Большое спасибо – Patapunfate

0

Это зависит немного от числа событий, и хотите ли вы определить цвета для каждого события самостоятельно. Если есть небольшое количество событий, вы можете подумать о добавлении условного форматирования для каждого события отдельно, как предложил Йорг. Это позволит вам установить цветовую схему самостоятельно. Если существует много событий, вы можете рассмотреть возможность добавления вспомогательного столбца со следующей формулой =VALUE(LEFT(A1;FIND(".";A1)-1)). На основе этого столбца вы можете добавить условное форматирование для строк с помощью цветовых шкал. Недостатком этого метода является то, что Excel определяет цвета для вас. Кроме того, вы можете определить список цветов в желаемом порядке в VBA, прокрутить каждый из нормализованных идентификаторов событий и установить цвет фона соответственно.

+0

Спасибо за ваше предложение. На самом деле, есть много событий, но мне все же удалось принять предложение Йорга добавить условное форматирование – Patapunfate

0

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

Private Sub Worksheet_Change(ByVal Target As Range) 

If Target.Row > 1 Then 
    If IsNumeric(Target) Then 
     If Target.Column = 1 Then 
      If Application.WorksheetFunction.RoundDown(Target.Value, 0) = WorksheetFunction.RoundDown(Cells(Target.Row - 1, 1).Value, 0) + 1 Then 

        r = WorksheetFunction.RandBetween(0, 255) 
        g = WorksheetFunction.RandBetween(0, 255) 
        b = WorksheetFunction.RandBetween(0, 255) 
        Range(Cells(Target.Row, 1), Cells(Target.Row, 3)).Interior.Color = RGB(r, g, b) 
      Else 
        Range(Cells(Target.Row - 1, 1), Cells(Target.Row - 1, 3)).Copy 
        Range(Cells(Target.Row, 1), Cells(Target.Row, 3)).PasteSpecial (xlPasteFormats) 
        Application.CutCopyMode = False 
      End If 
     End If 
    End If 
End If 

End Sub 
Смежные вопросы