Скрытие строк на основе двух значений (Microsoft Excel)
Майк, как бухгалтер, должен скрывать строки на листе на основе значений в двух ячейках в строке. В его таблицах данных есть три столбца, и если строка содержит ноль во втором и третьем столбцах, то эта строка должна быть скрыта. Если второй или третий столбец пуст или содержит какое-либо другое значение, то строку не следует скрывать.
Есть несколько способов решить эту проблему. Первый — использовать автофильтр Excel. Просто создайте еще один столбец, содержащий такую формулу:
=AND(B2=0,C2=0)
Значение, возвращаемое формулой, будет True, только если и второй (B), и третий © столбцы содержат нулевое значение. Скопируйте формулу в другие соответствующие ячейки столбца, и затем вы сможете использовать автофильтр для фильтрации данных на основе этого столбца. Когда вы отображаете в столбце только те строки, которые содержат False, вы фактически скрыли строки, в которых есть нулевые значения во втором и третьем столбцах.
Вы также можете использовать макрос для проверки строк за вас. Следующий макрос проходит через каждую строку на листе, начиная со строки 1. Пока что-то есть в столбце A, макрос проверяет наличие нулевого значения в столбцах B и C. Если есть, то для строки установлено свойство .Hidden.
Sub Hide() Dim Criteria as Boolean Dim i As Integer i = 1 Do Until Trim(Cells(i, 1).Value) = "" Criteria = True Criteria = Criteria And (Cells(i, 2).Value = 0) _ And Cells(i, 2).Value <> "" Criteria = Criteria And (Cells(i, 3).Value = 0) _ And Cells(i, 3).Value <> "" If Criteria Then Rows(i).EntireRow.Hidden = True i = i + 1 Loop End Sub
Макрос выполняется до тех пор, пока не встретит строку, в которой ничего нет в столбце A. Это означает, что вам нужно убедиться, что в строках перед таблицей данных действительно что-то есть. Если ваша таблица данных начинается в строке 4 рабочего листа, а в ячейках с A1 по A3 нет ничего, макрос никогда не будет работать удовлетворительно. Вы, конечно, можете настроить макрос в этой ситуации так, чтобы он начал проверку в строке 4; просто измените начальное присвоение переменной i на 4 вместо 1.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (2416) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и более поздних версий) здесь:
link: / excelribbon-Hiding_Rows_Based_on_Two_Values [Скрытие строк на основе двух значений]
.