Что делать если условием таблицы является скрытие столбцов по условию: содержание в ячейках заданного диапазона таблицы определенного значения? Например: Есть таблица со строками содержащими в заголовке название рыб (200 строк) и столбцами содержащими в заголовке название локаций для рыб (50 столбцов). В таблице есть диапазон содержащий в ячейках символ Х и символ Y(либо пустая ячейка). Этот диапазон показывает в какой локации какая содержится рыба. Используя стандартный фильтр выбираю в одном из столбцов "фильтровать по значению Х" Требуется: Выделив все ячейки оставшегося после фильтрации диапазона (например осталось только 20 строк названий рыб и все 50 столбцов названий локаций, т.е 1000 ячеек) скрыть СТОЛБЦЫ в которых ячейки диапазона не содержат хотя бы 1 символ Х (например в результате получиться 20 строк названий рыб и всего 5 СТОЛБЦОВ названий локаций, т.е 100 ячеек) Результат может быть как в этой же таблице либо вывод на отдельный лист. Или при использовании стандартного фильтра сразу же скрываются не только строки, но и столбцы не содержащие условия фильтрации (условие: ячейки столбца содержат хотя бы 1 символ Х) Изначально в каждом столбце есть хотя бы 1 символ Х. Пример таблицы во вложении
Пожалуйста помогите разобраться с этой задачкой. Излазил кучу ресурсов. В основном все повторяется одно и тоже: Использование форматирования или сортировки. Пробовал. Не получается. Транспонировать таблицу не вариант. Все сводится к написанию скрипта. Я не силен в этом деле.
Спасибо за беспокойство. При фильтрации основного файла ничего не происходит. Таблица с внесенной формулой просто скрывается (понимаю что фильтр убирает строки, поэтому соседняя таблица тоже скрывается) Таблица во вкладке также ничего не содержит. 100% вероятность, что я не совсем понимаю как это работает.
Наверняка будет помощью следующее уточнение: Таблиц на листе может быть 2 (вторая справа), но можно делать и на отдельных листах. На отдельных листах даже лучше будет. Первая таблица - Основная таблица в которой происходит фильтрация Вторая таблица - Таблица с результатом работы фильтра по условиям задачки которая описана выше Во второй таблице отфильтрованы и строки и столбцы
Private Sub Worksheet_Calculate()
Dim f As Filter, i&
If Me.AutoFilterMode Then
Application.EnableEvents = False
Application.ScreenUpdating = False
For Each f In Me.AutoFilter.Filters
If f.On Then
For i = Me.AutoFilter.Range.Columns.Count - Me.AutoFilter.Range.Column + 1 To Me.AutoFilter.Range.Column + 2 Step -1
If Application.WorksheetFunction.Subtotal(103, Me.AutoFilter.Range.Offset(1).Columns(i - Me.AutoFilter.Range.Column + 1)) = 0 Then
Me.Columns(i).Hidden = True
End If
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
Exit Sub
End If
Next
Me.Columns.Hidden = False
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
RAN, ОГРОМНОЕ спасибо за труд! Подскажите, что требуется сделать для того, чтобы это правило действовало и на другие листы в книге, с другим диапазоном ?
RAN, Побеспокою еще немного. Стал пробовать пользоваться таблицей и столкнулся вот с какой проблемой 1. Таблица не раскрывается полностью, не могу отменить фильтрацию заданную Вами 2. Поясните где находится модуль листа? Мне реально стыдно, но я наверно от волнения отупел совсем
Спасибо огромное. Очень полезная ссыль.. Получил настоящее удовольствие от изучения, да еще и канал YouTube нашел. Однозначно респект!!!
Единственно непонятно, что имел ввиду RAN, когда говорил про фильтр. Поясню как я понял: 1.В нужной таблице устанавливаем стандартный фильтр сортировки по строкам 2. В любом месте листа выделяем ячейку и пишем в ней функцию =СЕГОДНЯ() 3. Находим модуль листа и копируем туда код предложенный RAN После этих манипуляций таблица на которой я установил фильтр будет убирать строки и столбцы по условию которое обсуждаем здесь. Верно ли я понимаю? И еще один нюансик. В представленом RAN варианте не сбрасывается фильтр установленный RAN (таблица "Рыбалка образец" получается усечённой) В чем может быть проблема? Спасибо за помощь.