Подсчет пустых цветных ячеек (Microsoft Excel)
У Синди есть полностью отформатированный рабочий лист, в котором во многих ячейках используется цвет.
В некоторых ячейках есть значения; многие этого не делают. Ей нужен способ подсчитать все цветные ячейки, которые пусты, и ей интересно, есть ли быстрый способ сделать это.
Есть несколько способов получить нужную информацию. Один из способов — выполнить следующие шаги:
-
Выясните, какой цвет вы хотите использовать для подсчета.
-
Нажмите F5. Excel отображает диалоговое окно «Перейти».
-
Щелкните кнопку Special. Excel отображает диалоговое окно «Перейти к специальному».
(См. Рис. 1.)
-
Выберите радиокнопку Пробелы.
-
Щелкните ОК. Теперь все пустые ячейки на листе выделены.
-
Нажмите Ctrl + F. Excel отображает вкладку «Найти» диалогового окна «Найти и заменить».
-
Нажмите кнопку «Параметры», чтобы развернуть диалоговое окно. (См. Рис. 2.)
-
Нажмите кнопку «Форматировать». Excel отображает диалоговое окно «Найти формат».
-
Убедитесь, что отображается вкладка «Заливка». (См. Рис. 3.)
-
Нажмите на цвет, который хотите найти. (Это цвет, который вы определили на шаге 1.)
-
Нажмите OK, чтобы закрыть диалоговое окно «Найти формат».
-
Щелкните «Найти все».
Когда вы выполняете эти шаги, Excel показывает в нижней части диалогового окна «Найти и заменить», сколько ячеек было найдено, соответствующих вашему цвету. Поскольку вы начали поиск с выделенными только пустыми ячейками, в результате подсчитывается все пустые ячейки, заполненные цветом.
Конечно, если вам нужно определить это количество несколько раз, эти шаги могут быстро стать очень утомительными. В таких случаях лучше использовать макрос. Следующий макрос проходит через каждую пустую ячейку в любом выбранном диапазоне и проверяет, содержит ли она узор или цвет и является ли она пустой. Если условия выполнены, счетчик этого цвета увеличивается.
Sub CountBlankColors1() Dim c As Range Dim J As Integer Dim ColorCount(56) As Long ActiveSheet.Range("a1").CurrentRegion.SpecialCells(xlCellTypeBlanks).Select For Each c In Selection With c.Interior If .Pattern <> xlNone Then If .ColorIndex <> xlNone Then If IsEmpty(c) Then ColorCount(.ColorIndex) = _ ColorCount(.ColorIndex) + 1 End If End If End If End With Next c sTemp = "These are the color counts" & vbCrLf & vbCrLf For J = 0 To 56 If ColorCount(J) > 0 Then sTemp = sTemp & "Color " & J & ": " & ColorCount(J) & vbCrLf End If Next J MsgBox sTemp End Sub
Конечно, вы можете не подсчитывать разные цвета по отдельности.
Вместо этого вы можете просто узнать, сколько пустых ячеек заполнено любым цветом в совокупности. В этом случае макрос становится намного проще.
Sub CountBlankColors2() Dim c As Range Dim x As Long x = 0 ActiveSheet.Range("a1").CurrentRegion.SpecialCells(xlCellTypeBlanks).Select For Each c In Selection If c.Interior.Pattern <> xlNone Then If c.Interior.ColorIndex <> xlNone Then If IsEmpty(c) Then x = x + 1 End If End If Next c MsgBox "Number of colored blank cells: " & x End Sub
Следует отметить, что эти подходы не принимают во внимание, окрашена ли ячейка с использованием условного формата или нет.
(Фактически, они вообще не принимают во внимание условные форматы.)
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (12581) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.