Автоматическое скрытие строки в excel

Скрытие/отображение ненужных строк и столбцов

Постановка задачи

Предположим, что у нас имеется вот такая таблица, с которой приходится «танцевать» каждый день:

outline1.gif

Кому таблица покажется маленькой — мысленно умножьте ее по площади в двадцать раз, добавив еще пару кварталов и два десятка крупных российских городов. 

Задача — временно убирать с экрана ненужные в данный момент для работы строки и столбцы, т.е., 

  • скрывать подробности по месяцам, оставляя только кварталы
  • скрывать итоги по месяцам и по кварталам, оставляя только итог за полугодие
  • скрывать ненужные в данный момент города (я работаю в Москве — зачем мне видеть Питер?) и т.д.

В реальной жизни примеров таких таблиц — море.

Способ 1. Скрытие строк и столбцов

Способ, прямо скажем, примитивный и не очень удобный, но два слова про него сказать можно. Любые выделенные предварительно строки или столбцы на листе можно скрыть, щелкнув по заголовку столбца или строки правой кнопкой мыши и выбрав в контекстном меню команду Скрыть (Hide):

outline2.gif

Для обратного отображения нужно выделить соседние строки/столбцы и, щелкнув правой кнопкой мыши, выбрать в меню, соответственно, Отобразить (Unhide).

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

Способ 2. Группировка

Если выделить несколько строк или столбцов, а затем выбрать в меню Данные — Группа и структура — Группировать (Data — Group and Outline — Group), то они будут охвачены прямоугольной скобкой (сгруппированы). Причем группы можно делать вложенными одна в другую (разрешается до 8 уровней вложенности):

outline3.gif

Более удобный и быстрый способ — использовать для группировки выделенных предварительно строк или столбцов сочетание клавиш Alt+Shift+стрелка вправо, а для разгруппировки Alt+Shift+стрелка влево, соответственно.

Такой способ скрытия ненужных данных гораздо удобнее — можно нажимать либо на кнопку со знаком «+» или ««, либо на кнопки с цифровым обозначением уровня группировки в левом верхнем углу листа — тогда все группы нужного уровня будут сворачиваться или разворачиваться сразу.

Кроме того, если в вашей таблице присутствуют итоговые строки или столбцы с функцией суммирования соседних ячеек, то есть шанс (не 100%-ый правда), что Excel сам создаст все нужные группировки в таблице одним движением — через меню Данные — Группа и структура — Создать структуру (Data — Group and Outline — Create Outline). К сожалению, подобная функция работает весьма непредсказуемо и на сложных таблицах порой делает совершенную ерунду. Но попробовать можно.

В Excel 2007 и новее все эти радости находятся на вкладке Данные (Data) в группе Структура (Outline):

outline5.gif

Способ 3. Скрытие помеченных строк/столбцов макросом

Этот способ, пожалуй, можно назвать самым универсальным. Добавим пустую строку и пустой столбец в начало нашего листа и отметим любым значком те строки и столбцы, которые мы хотим скрывать:

outline4.gif

Теперь откроем редактор Visual Basic (ALT+F11), вставим в нашу книгу новый пустой модуль (меню Insert — Module) и скопируем туда текст двух простых макросов:

Sub Hide()
    Dim cell As Range
    Application.ScreenUpdating = False                              'отключаем обновление экрана для ускорения
    For Each cell In ActiveSheet.UsedRange.Rows(1).Cells            'проходим по всем ячейкам первой строки
        If cell.Value = "x" Then cell.EntireColumn.Hidden = True    'если в ячейке x - скрываем столбец
    Next
    For Each cell In ActiveSheet.UsedRange.Columns(1).Cells         'проходим по всем ячейкам первого столбца
        If cell.Value = "x" Then cell.EntireRow.Hidden = True       'если в ячейке x - скрываем строку
    Next
    Application.ScreenUpdating = True
End Sub

Sub Show()
    Columns.Hidden = False   'отменяем все скрытия строк и столбцов
    Rows.Hidden = False
End Sub

Как легко догадаться, макрос Hide скрывает, а макрос Show — отображает обратно помеченные строки и столбцы. При желании, макросам можно назначить горячие клавиши (Alt+F8 и кнопка Параметры), либо создать прямо на листе кнопки для их запуска с вкладки Разработчик — Вставить — Кнопка (Developer — Insert — Button).

Способ 4. Скрытие строк/столбцов с заданным цветом

Допустим, что в приведенном выше примере мы, наоборот, хотим скрыть итоги, т.е. фиолетовые и черные строки и желтые и зеленые столбцы. Тогда наш предыдущий макрос придется немного видоизменить, добавив вместо проверки на наличие «х» проверку на совпадение цвета заливки с произвольно выбранными ячейками-образцами:

Sub HideByColor()
    Dim cell As Range
    Application.ScreenUpdating = False
    For Each cell In ActiveSheet.UsedRange.Rows(2).Cells
        If cell.Interior.Color = Range("F2").Interior.Color Then cell.EntireColumn.Hidden = True
        If cell.Interior.Color = Range("K2").Interior.Color Then cell.EntireColumn.Hidden = True
    Next
    For Each cell In ActiveSheet.UsedRange.Columns(2).Cells
        If cell.Interior.Color = Range("D6").Interior.Color Then cell.EntireRow.Hidden = True
        If cell.Interior.Color = Range("B11").Interior.Color Then cell.EntireRow.Hidden = True
    Next
    Application.ScreenUpdating = True
End Sub

Однако надо не забывать про один нюанс: этот макрос работает только в том случае, если ячейки исходной таблицы заливались цветом вручную, а не с помощью условного форматирования (это ограничение свойства Interior.Color). Так, например, если вы с помощью условного форматирования автоматически подсветили в своей таблице все сделки, где количество меньше 10:

outline7.png

…и хотите их скрывать одним движением, то предыдущий макрос придется «допилить». Если у вас Excel 2010-2013, то можно выкрутиться, используя вместо свойства Interior свойство DisplayFormat.Interior, которое выдает цвет ячейки вне зависимости от способа, которым он был задан. Макрос для скрытия синих строк тогда может выглядеть так:

Sub HideByConditionalFormattingColor()
    Dim cell As Range
    Application.ScreenUpdating = False
    For Each cell In ActiveSheet.UsedRange.Columns(1).Cells
        If cell.DisplayFormat.Interior.Color = Range("G2").DisplayFormat.Interior.Color Then cell.EntireRow.Hidden = True
    Next
    Application.ScreenUpdating = True
End Sub

Ячейка G2 берется в качестве образца для сравнения цвета. К сожалению, свойство DisplayFormat появилось в Excel только начиная с 2010 версии, поэтому если у вас Excel 2007 или старше, то придется придумывать другие способы.

Ссылки по теме

  • Что такое макрос, куда вставлять код макроса, как их использовать
  • Автоматическая группировка в многоуровневых списках

Предположим, у вас есть диапазон данных, и вы хотите скрыть строки на основе значения столбца, например, если значение ячейки столбца меньше 3000, затем скройте строку ячейки, как показано ниже.

док скрыть строки на основе значения 1


В Excel вы можете использовать функцию «Фильтр» для фильтрации и скрытия строк на основе значения ячейки.

1. Выберите данные, которые нужно отфильтровать, и нажмите Данные > Фильтр. Смотрите скриншот:

док скрыть строки на основе значения 2

2. Затем щелкните стрелку вниз, чтобы отобразить раскрывающийся список фильтров, и щелкните Числовые фильтры (или текстовые фильтры) > Больше чем (вы можете выбрать другой критерий в подменю). Смотрите скриншот:

док скрыть строки на основе значения 3

3. В появившемся диалоговом окне введите критерий в текстовое поле рядом с больше чем. Смотрите скриншот:

док скрыть строки на основе значения 4

4. Нажмите OK. Теперь отображаются только данные, превышающие 3000, а строки, данные которых меньше 3000, скрыты.

док скрыть строки на основе значения 5


Более того, если вас интересует код VBA, здесь я могу представить код VBA для скрытия строк на основе значения ячейки.

1. Нажмите Alt + F11 ключи для включения Microsoft Visual Basic для приложений окно.

2. Затем нажмите Вставить > Модули открыть новый Модули window и вставьте в него код VBA.

VBA: скрыть строки на основе значения ячейки.

Sub HideRow()
'Updateby20150618
Dim Rng As Range
Dim WorkRng As Range
Dim xNumber As Integer
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
xNumber = Application.InputBox("Number", xTitleId, "", Type:=1)
For Each Rng In WorkRng
    Rng.EntireRow.Hidden = Rng.Value < xNumber
Next
End Sub

3. Затем нажмите F5 нажмите клавишу для запуска VBA, затем выберите диапазон данных, в котором вы хотите скрыть строки в всплывающем диалоговом окне (за исключением заголовков). Смотрите скриншот:

док скрыть строки на основе значения 6

4. Нажмите OK, и введите номер критерия во втором диалоговом окне. Смотрите скриншот:

док скрыть строки на основе значения 7

5. Нажмите OK. Теперь строки, данные которых меньше 3000, скрыты.

Наконечник: Если вы хотите скрыть строки, превышающие 3000, просто измените Rng.EntireRow.Hidden = Rng.Value <xNumber в Rng.EntireRow.Hidden = Rng.Value> xNumber, или если вы хотите скрыть строки, данные которых равны 3000, измените на Rng.EntireRow.Hidden = Rng.Value = xNumber.



ЕСЛИ вам не нравится включать функцию фильтра, как и VBA, я представляю вам удобный инструмент — Выбрать определенные ячейки of Kutools for Excel чтобы быстро выбрать целые строки на основе значения ячейки, затем вы можете скрыть их.

После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:

Наконечник. Если вы хотите получить бесплатную пробную версию функции извлечения текста, пожалуйста, перейдите на бесплатную пробную версию Kutools for Excel сначала, а затем перейдите к применению операции в соответствии с вышеуказанными шагами.

1. Выберите диапазон данных и нажмите Кутулс > Выберите > Выбрать определенные ячейки. Смотрите скриншот:

док скрыть строки на основе значения 14

2. в Выбрать определенные ячейки диалог, проверьте Весь ряд под Тип выбора раздел, затем выберите нужный критерий из Конкретный тип список, затем введите число или текст в текстовое поле. Смотрите скриншот:

док скрыть строки на основе значения 9

3. Нажмите Ok > OK закрыть диалоги. Теперь выбираются строки, данные которых меньше 3000, и вам просто нужно щелкнуть правой кнопкой мыши заголовок строки, чтобы отобразить контекстное меню, и выбрать «Скрыть». Смотрите скриншот:
док скрыть строки на основе значения 10

Теперь строки, данные которых меньше 3000, скрыты.

док скрыть строки на основе значения 11

Наконечник:

1. Если вы хотите скрыть строки, содержащие определенное значение, вы можете выбрать Комплект и введите определенное значение в текстовое поле.

док скрыть строки на основе значения 12

2. Если вы хотите скрыть строки, которые содержат значения больше, но меньше значений, вы можете выбрать Больше и Менее, затем введите значения в два поля и установите флажок И,.

док скрыть строки на основе значения 13

Работы С Нами Kutools for ExcelАвтора Выбрать определенные ячейки утилита, вы можете определить расположение определенных ячеек, выбрать целые строки или столбцы на основе значения ячейки и так далее. Щелкните здесь, чтобы узнать больше об этой утилите.



Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

  • honor8

Как в excel скрывать несколько строк, их ячейки либо пустые либо =»» ?

нужно чтобы исчезали полностью строки и не печатались,
по самой последней ячейке из диапазона строк 5:29

т.е. сейчас должны стать скрытыми полностью строки 16:29
потому что последняя заполненная строка 15 (ячейка E15)
и чтобы строки 16:29 на принтере не печатались

т.е. должны быть автоматически скрыто (м.б. по умному фильтр настроить?)
Внимание! Ячейки диапазона строк 5:29 могут содержать формулы

Файл https://yadi.sk/i/FPqZazjymfSCwQ

5c864b640f27d345561796.png


  • Вопрос задан

    более трёх лет назад

  • 3139 просмотров

Нашёл решение. Для каждого листа где нужно убирать строки, делаем следующее:
1. Сделать невидимые формулы справа от основного содержания листа, которые проверяют являются ли ячейки из столбцов b и e одновременно пустые, например, =ЕСЛИ(И(B19="";E19=""); ""; 1). И сделать фильтр по пустым ячейкам
2.создать макрос в каждом листе где есть фильтр, который автоматически обновляет фильтр:

Private Sub Worksheet_Activate()

ActiveSheet.AutoFilter.ApplyFilter

End Sub

В последнее время я сам нахожу ответы на свои вопросы.

Пригласить эксперта

Просто отфильтруй пустые ячейки (см. скриншот).5c864fcdc3bb8427355873.png

Выдели строки целиком, потом прав. клик на выделениии, команда «скрыть»


  • Показать ещё
    Загружается…

15 апр. 2023, в 04:50

7000 руб./за проект

15 апр. 2023, в 03:28

5000 руб./за проект

15 апр. 2023, в 02:02

12000 руб./за проект

Минуточку внимания

Автоматическое скрытие пустых строчек

Saigon

Дата: Понедельник, 16.09.2019, 22:35 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

Здравствуйте.

На отдельном листе, защищенным паролем, имеется таблица, откуда автоматически переносятся вычисления с другого листа и эта таблица отправляется на печать в производство. В самой таблице строчек сделано под максимально возможное количество значений (40 строчек), но при этом за раз туда переносится в среднем от двух до пяти значений Таким образом более 30 строчек чаще всего всегда остаются пустыми.

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

Спасибо

 

Ответить

gling

Дата: Понедельник, 16.09.2019, 23:37 |
Сообщение № 2

Группа: Друзья

Ранг: Старожил

Сообщений: 2449


Репутация:

652

±

Замечаний:
0% ±


2010

без помощи макросов автоматически скрывать пустые строки

Нет.

Цитата

ее наполнение просто меняется от действий пользователя

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


ЯД-41001506838083

 

Ответить

Saigon

Дата: Вторник, 17.09.2019, 00:18 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

Если это не так, то значит я ничего не понял, что вы хотите и какой будет конечный вид ваших таблиц.

Да, наверно действительно немного путано объяснил.

Таблица будет одна. Грубо говоря у владельца файла есть 10 операций (они на другом листе). Он вносит значения в первую операцию, специальная формула их обрабатывает и полученные значения переносит в требуемую таблицу. На производстве на основании этих данные из таблицы делают процесс, дают обратную связь и владелец файла вносит некие другие значения уже во вторую операцию. Формула их снова обрабатывает, данные снова переносятся в требуемую таблицу, полностью заменяя параметры после первого процесса, снова на печать, на производство, потом третья операция и так далее до десятой операции.

Так вот, для всех операции есть общий набор неких параметров-значений (это как раз строчки, и их около 40). Допустим, что в первую операцию владелец файла заносит данные для первого и пятого значения. Соответственно в сводной таблице требуется отобразить расчетные значения только для первой и пятой строчек. Во второй операции это могут быть уже, например, данные для четвертого, восьмого и десятого значения, следовательно после второй операции в сводной таблице должны отображаться только строки 1,8 и 10.

Прошу прощения, что не прикрепляю таблицу — там конфеденциальные сведения. Но если будет по прежнему не понятно, то что нибудь придумаю и выложу пример.

Спасибо

Сообщение отредактировал SaigonВторник, 17.09.2019, 00:19

 

Ответить

gling

Дата: Вторник, 17.09.2019, 06:19 |
Сообщение № 4

Группа: Друзья

Ранг: Старожил

Сообщений: 2449


Репутация:

652

±

Замечаний:
0% ±


2010

Пример результата облегчил бы понимание, а раз нет примера приходится угадывать. Может так надо?
Выписка из правил форума:

Цитата

— Чтобы понять и помочь — достаточно таблицы на 10-20 строк
— При этом старайтесь сохранить структуру, расположение таблиц, имена листов — аналогично оригиналу
— Если файл содержит конфиденциальную информацию — обязательно замените Ваши данные на нейтральные

К сообщению приложен файл:

4749326.xlsx
(15.5 Kb)


ЯД-41001506838083

Сообщение отредактировал glingВторник, 17.09.2019, 06:22

 

Ответить

Saigon

Дата: Вторник, 17.09.2019, 20:26 |
Сообщение № 5

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

Пример результата облегчил бы понимание, а раз нет примера приходится угадывать

Спасибо, концепция абсолютно верная. Я приложил пример. Заполняется последовательно с 1 по 9 операции, а на листе «сводная» всегда отображаются вычисления с последней операции. Вот там то и надо убрать строчки.

К сообщению приложен файл:

3250523.xlsx
(26.1 Kb)

 

Ответить

gling

Дата: Вторник, 17.09.2019, 21:49 |
Сообщение № 6

Группа: Друзья

Ранг: Старожил

Сообщений: 2449


Репутация:

652

±

Замечаний:
0% ±


2010

Пример результата облегчил бы понимание

Оказывается зря надеялся.
Ну можно сделать чтобы параметр 4 записался в сводной в первую строку, а следующий параметр какой должен быть? или в следующую строку запишетс параметр у которого тоже есть максимальное значение? Т.е. все параметры с максимальным значением должны записаться по порядку в сводной? Пример покажите како вы видете конечный результат. В первом файле примере были значения 300; 300 и 1200 в одной таблице. В каком порядке они должны собраться в одной сводной и какие критерии из отбора в сводную? Покажите.


ЯД-41001506838083

 

Ответить

Saigon

Дата: Вторник, 17.09.2019, 22:05 |
Сообщение № 7

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2016


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

К сообщению приложен файл:

_1.xlsx
(26.2 Kb)
·

_2.xlsx
(26.2 Kb)

 

Ответить

Saigon

Дата: Вторник, 17.09.2019, 22:06 |
Сообщение № 8

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

3 и 4 примеры

К сообщению приложен файл:

_3.xlsx
(26.2 Kb)
·

_4.xlsx
(26.3 Kb)

 

Ответить

gling

Дата: Вторник, 17.09.2019, 22:45 |
Сообщение № 9

Группа: Друзья

Ранг: Старожил

Сообщений: 2449


Репутация:

652

±

Замечаний:
0% ±


2010

До конца не понятно, но раз

концепция абсолютно верная

вариант решения в файле. Для меня все 4 файла примера одинаковые, по одной строке заполняется в каждом. Разница в том что берутся они из разных строк общей таблицы. Может еще какая то сортировка должна быть?
А уж ежели хотите заполнять по одной строке в сводной таблице, то в формуле столбца С, СТРОКА() замените на единицу. Получится так

Код

=НАИБОЛЬШИЙ(‘1’!$E$3:$BF$12;1)

К сообщению приложен файл:

1342969.xlsx
(29.7 Kb)


ЯД-41001506838083

Сообщение отредактировал glingВторник, 17.09.2019, 22:48

 

Ответить

Saigon

Дата: Вторник, 17.09.2019, 22:58 |
Сообщение № 10

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

Разница в том что берутся они из разных строк общей таблицы

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

Подскажите, может есть какой-то макрос или настройка, чтобы все пустые строчки в сводной убирал?

 

Ответить

gling

Дата: Вторник, 17.09.2019, 23:20 |
Сообщение № 11

Группа: Друзья

Ранг: Старожил

Сообщений: 2449


Репутация:

652

±

Замечаний:
0% ±


2010

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

В сводной уже есть формулы, их трогать нельзя

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

может есть какой-то макрос или настройка, чтобы все пустые строчки в сводной убирал?

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


ЯД-41001506838083

 

Ответить

Saigon

Дата: Вторник, 17.09.2019, 23:30 |
Сообщение № 12

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2016


Автофильтром увы никак. Лист защищен паролем.

У меня цель, если уж совсем приземленно. Вот таблица, строки с 1 по 10. При каждом вычислении в любую из этих строк может записаться одно или несколько значений. 9 остальных пустые. Их надо автоматически скрыть.
Может записаться 2, 3, 5 значений. Но оставшиеся строки все равно должны быть скрыты автоматически

 

Ответить

gling

Дата: Вторник, 17.09.2019, 23:47 |
Сообщение № 13

Группа: Друзья

Ранг: Старожил

Сообщений: 2449


Репутация:

652

±

Замечаний:
0% ±


2010

Зациклились вы на этом скрытии. Какая разница скрыты они или просто игнорированны при формировании таблицы? Вам нужно напечатать таблицу без пустых строк, так в файле примере так и получается. Какие то тонкости вы наверное не договариваете. А на защищенном листе без снятия защиты вы скрыть пустые строки не сможете. Нужно будет писать макрос который снимает защиту скрывает строки и вновь устанавливает защиту. Первоначально про защиту не сообщалось. А сколько ещё таких подводных камней? Если не подходит предложенное, попытайтесь написать макрос или найти готовый. Удачи.


ЯД-41001506838083

 

Ответить

Saigon

Дата: Вторник, 17.09.2019, 23:48 |
Сообщение № 14

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Excel 2016

Какие то тонкости вы наверное не договариваете

Да вроде все сказал) Ну в любом случае спасибо за помощь

 

Ответить

Pelena

Дата: Среда, 18.09.2019, 09:22 |
Сообщение № 15

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Автофильтром увы никак. Лист защищен паролем

Не убедили :)
На защищенном листе можно разрешить использовать фильтр


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Скрыть в excel пустые строки

На отдельном листе, защищенным паролем, имеется таблица, откуда автоматически переносятся вычисления с другого листа и эта таблица отправляется на печать в производство. В самой таблице строчек сделано под максимально возможное количество значений (40 строчек), но при этом за раз туда переносится в среднем от двух до пяти значений Таким образом более 30 строчек чаще всего всегда остаются пустыми.

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

Да, наверно действительно немного путано объяснил.

Таблица будет одна. Грубо говоря у владельца файла есть 10 операций (они на другом листе). Он вносит значения в первую операцию, специальная формула их обрабатывает и полученные значения переносит в требуемую таблицу. На производстве на основании этих данные из таблицы делают процесс, дают обратную связь и владелец файла вносит некие другие значения уже во вторую операцию. Формула их снова обрабатывает, данные снова переносятся в требуемую таблицу, полностью заменяя параметры после первого процесса, снова на печать, на производство, потом третья операция и так далее до десятой операции.

Так вот, для всех операции есть общий набор неких параметров-значений (это как раз строчки, и их около 40). Допустим, что в первую операцию владелец файла заносит данные для первого и пятого значения. Соответственно в сводной таблице требуется отобразить расчетные значения только для первой и пятой строчек. Во второй операции это могут быть уже, например, данные для четвертого, восьмого и десятого значения, следовательно после второй операции в сводной таблице должны отображаться только строки 1,8 и 10.

Прошу прощения, что не прикрепляю таблицу — там конфеденциальные сведения. Но если будет по прежнему не понятно, то что нибудь придумаю и выложу пример.

Как скрыть пустые строки? Программное скрытие пустых строк макросом VBA

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

Как скрыть пустые строки средствами Excel?

Скрыть строки вручную

Простейший способ заключается в том, чтобы зрительно отыскать пустые строки и выделить их. При выделении нескольких строк нужно удерживать клавишу Ctrl на клавиатуре. После этого необходимо навести курсор на выделенное поле, кликнуть по нему правой кнопкой мыши и выбрать пункт «Скрыть» из контекстного меню. Выделенные строки будут скрыты. Способ простой, но имеет свои минусы, можно пропустить строку, можно ошибочно выделить не ту строку.

Скрыть строки используя сортировку

Если предстоит скрыть большое количество строк, искать их, что называется «глазами» очень не удобно. В этом случае можно использовать сортировку для того чтобы пустые строки сгруппировались и после этого скрыть их, выделив сразу весь диапазон либо просто вывести за пределы печати при распечатывании документа. Минусом этого метода является то, что очередность строк нарушается.

Как скрыть пустые строки средствами VBA?

Программное скрытие макросом VBA

Теперь речь пойдет о том как программно скрыть пустые строки макросом. Возьмем процедуру, при помощи которой мы уже удаляли пустые строки и внесем в её программный код небольшие изменения. Заменим команду Rows(r).Delete на Rows(r).Hidden = True

Для того, чтобы перенести этот программный код на свой компьютер, наведите курсор мыши на поле с программным кодом , нажмите на одну из двух кнопкок в правом верхнем углу этого поля, скопируйте программный код и вставьте его в модуль проекта на своем компьютере (подробнее о том, как сохранить программный код макроса ).

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

Автоматическое скрытие с использованием надстройки

Еще более гибкий инструмент для работы со строками — надстройка, сделанная на базе макроса VBA, позволяющая удалять и скрывать не только пустые строки, но и строки, подходящие под условия пользователей. Для удобства пользователей здесь добавлено диалоговое окно, при помощи которого можно изменять диапазоны действия макроса, выставлять условия и определять другие параметры.

Пользователь на свой выбор может как удалить так и скрыть пустые строки. Может удалить либо скрыть строки содержащие либо не содержащие заданный текст. При поиске заданного текста пользователь на свой выбор может учитывать либо не учитывать регистр. Возможен одновременный поиск сразу нескольких значений, введенных через точку с запятой (;). Кроме того пользователь также может ограничивать диапазон действия макроса, задавая номера первой и последней обрабатываемой строки. Надстройка освобождает пользователя от поиска нужного макроса в списке доступных макросов, так как позволяет вызывать диалоговое окно прямо из панели инструментов Excel.

Еще одна надстройка, для скрытия и удаления строк и столбцов, в зависимости от значений ячеек и заданных условий. Работает несколько медленнее, чем первая, так как проверяет не строки, а ячейки, но более гибко. Позволяет удалять не только строки и столбцы, но и ячейки с заданными значениями и с заданным сдвигом.

Скрытие/отображение ненужных строк и столбцов

Постановка задачи

Предположим, что у нас имеется вот такая таблица, с которой приходится «танцевать» каждый день:

Кому таблица покажется маленькой — мысленно умножьте ее по площади в двадцать раз, добавив еще пару кварталов и два десятка крупных российских городов.

Задача — временно убирать с экрана ненужные в данный момент для работы строки и столбцы, т.е.,

  • скрывать подробности по месяцам, оставляя только кварталы
  • скрывать итоги по месяцам и по кварталам, оставляя только итог за полугодие
  • скрывать ненужные в данный момент города (я работаю в Москве — зачем мне видеть Питер?) и т.д.

В реальной жизни примеров таких таблиц — море.

Способ 1. Скрытие строк и столбцов

Способ, прямо скажем, примитивный и не очень удобный, но два слова про него сказать можно. Любые выделенные предварительно строки или столбцы на листе можно скрыть, щелкнув по заголовку столбца или строки правой кнопкой мыши и выбрав в контекстном меню команду Скрыть (Hide) :

Для обратного отображения нужно выделить соседние строки/столбцы и, щелкнув правой кнопкой мыши, выбрать в меню, соответственно, Отобразить (Unhide) .

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

Способ 2. Группировка

Если выделить несколько строк или столбцов, а затем выбрать в меню Данные — Группа и структура — Группировать (Data — Group and Outline — Group) , то они будут охвачены прямоугольной скобкой (сгруппированы). Причем группы можно делать вложенными одна в другую (разрешается до 8 уровней вложенности):

Более удобный и быстрый способ — использовать для группировки выделенных предварительно строк или столбцов сочетание клавиш Alt+Shift+стрелка вправо, а для разгруппировки Alt+Shift+стрелка влево, соответственно.

Такой способ скрытия ненужных данных гораздо удобнее — можно нажимать либо на кнопку со знаком «+» или ««, либо на кнопки с цифровым обозначением уровня группировки в левом верхнем углу листа — тогда все группы нужного уровня будут сворачиваться или разворачиваться сразу.

Кроме того, если в вашей таблице присутствуют итоговые строки или столбцы с функцией суммирования соседних ячеек, то есть шанс (не 100%-ый правда), что Excel сам создаст все нужные группировки в таблице одним движением — через меню Данные — Группа и структура — Создать структуру (Data — Group and Outline — Create Outline) . К сожалению, подобная функция работает весьма непредсказуемо и на сложных таблицах порой делает совершенную ерунду. Но попробовать можно.

В Excel 2007 и новее все эти радости находятся на вкладке Данные (Data) в группе Структура (Outline) :

Способ 3. Скрытие помеченных строк/столбцов макросом

Этот способ, пожалуй, можно назвать самым универсальным. Добавим пустую строку и пустой столбец в начало нашего листа и отметим любым значком те строки и столбцы, которые мы хотим скрывать:

Теперь откроем редактор Visual Basic (ALT+F11), вставим в нашу книгу новый пустой модуль (меню Insert — Module) и скопируем туда текст двух простых макросов:

Как легко догадаться, макрос Hide скрывает, а макрос Show — отображает обратно помеченные строки и столбцы. При желании, макросам можно назначить горячие клавиши (Alt+F8 и кнопка Параметры), либо создать прямо на листе кнопки для их запуска с вкладки Разработчик — Вставить — Кнопка (Developer — Insert — Button) .

Способ 4. Скрытие строк/столбцов с заданным цветом

Допустим, что в приведенном выше примере мы, наоборот, хотим скрыть итоги, т.е. фиолетовые и черные строки и желтые и зеленые столбцы. Тогда наш предыдущий макрос придется немного видоизменить, добавив вместо проверки на наличие «х» проверку на совпадение цвета заливки с произвольно выбранными ячейками-образцами:

Однако надо не забывать про один нюанс: этот макрос работает только в том случае, если ячейки исходной таблицы заливались цветом вручную, а не с помощью условного форматирования (это ограничение свойства Interior.Color). Так, например, если вы с помощью условного форматирования автоматически подсветили в своей таблице все сделки, где количество меньше 10:

. и хотите их скрывать одним движением, то предыдущий макрос придется «допилить». Если у вас Excel 2010-2013, то можно выкрутиться, используя вместо свойства Interior свойство DisplayFormat.Interior, которое выдает цвет ячейки вне зависимости от способа, которым он был задан. Макрос для скрытия синих строк тогда может выглядеть так:

Ячейка G2 берется в качестве образца для сравнения цвета. К сожалению, свойство DisplayFormat появилось в Excel только начиная с 2010 версии, поэтому если у вас Excel 2007 или старше, то придется придумывать другие способы.

Как в excel скрывать несколько строк, если их ячейки либо, пустые либо =»»?

Как в excel скрывать несколько строк, их ячейки либо пустые либо =»» ?

нужно чтобы исчезали полностью строки и не печатались,
по самой последней ячейке из диапазона строк 5:29

т.е. сейчас должны стать скрытыми полностью строки 16:29
потому что последняя заполненная строка 15 (ячейка E15)
и чтобы строки 16:29 на принтере не печатались

т.е. должны быть автоматически скрыто (м.б. по умному фильтр настроить?)
Внимание! Ячейки диапазона строк 5:29 могут содержать формулы

  • Вопрос задан 11 мар.
  • 204 просмотра

Нашёл решение. Для каждого листа где нужно убирать строки, делаем следующее:
1. Сделать невидимые формулы справа от основного содержания листа, которые проверяют являются ли ячейки из столбцов b и e одновременно пустые, например, =ЕСЛИ(И(B19=»»;E19=»»); «»; 1) . И сделать фильтр по пустым ячейкам
2.создать макрос в каждом листе где есть фильтр, который автоматически обновляет фильтр:

В последнее время я сам нахожу ответы на свои вопросы.

Замечательно
то что вы написали равно

И не нужно ничего писать

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

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

в дополнение,
что бы не вкладывать макрос в каждый лист можно записать его один раз в модуле книги, там есть это событие

Но для задачи такого автоматизма более чем достаточно, потому что данные берутся из 1 листа и распределяются по другим в которых макросы. Изменив что то в первом листе, нужно кликать чтоб посмотреть на изменения в другом там где фильтр и макрос.

Скрытие строк и ячеек в Microsoft Excel

При работе в программе Excel довольно часто можно встретить ситуацию, когда значительная часть массива листа используется просто для вычисления и не несет информационной нагрузки для пользователя. Такие данные только занимают место и отвлекают внимание. К тому же, если пользователь случайно нарушит их структуру, то это может произвести к нарушению всего цикла вычислений в документе. Поэтому такие строки или отдельные ячейки лучше вообще скрыть. Кроме того, можно спрятать те данные, которые просто временно не нужны, чтобы они не мешали. Давайте узнаем, какими способами это можно сделать.

Процедура скрытия

Спрятать ячейки в Экселе можно несколькими совершенно разными способами. Остановимся подробно на каждом из них, чтобы пользователь сам смог понять, в какой ситуации ему будет удобнее использовать конкретный вариант.

Способ 1: группировка

Одним из самых популярных способов скрыть элементы является их группировка.

  1. Выделяем строки листа, которые нужно сгруппировать, а потом спрятать. При этом не обязательно выделять всю строку, а можно отметить только по одной ячейке в группируемых строчках. Далее переходим во вкладку «Данные». В блоке «Структура», который располагается на ленте инструментов, жмем на кнопку «Группировать».

Открывается небольшое окошко, которое предлагает выбрать, что конкретно нужно группировать: строки или столбцы. Так как нам нужно сгруппировать именно строки, то не производим никаких изменений настроек, потому что переключатель по умолчанию установлен в то положение, которое нам требуется. Жмем на кнопку «OK».

После этого образуется группа. Чтобы скрыть данные, которые располагаются в ней, достаточно нажать на пиктограмму в виде знака «минус». Она размещается слева от вертикальной панели координат.

Способ 2: перетягивание ячеек

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

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

Способ 3: групповое скрытие ячеек перетягиванием

Если нужно таким методом скрыть сразу несколько элементов, то прежде их следует выделить.

    Зажимаем левую кнопку мыши и выделяем на вертикальной панели координат группу тех строк, которые желаем скрыть.

Если диапазон большой, то выделить элементы можно следующим образом: кликаем левой кнопкой по номеру первой строчки массива на панели координат, затем зажимаем кнопку Shift и щелкаем по последнему номеру целевого диапазона.

Можно даже выделить несколько отдельных строк. Для этого по каждой из них нужно производить клик левой кнопкой мыши с зажатой клавишей Ctrl.

Становимся курсором на нижнюю границу любой из этих строк и тянем её вверх, пока границы не сомкнутся.

  • При этом будет скрыта не только та строка, над которой вы работаете, но и все строчки выделенного диапазона.
  • Способ 4: контекстное меню

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

    1. Выделяем строчки одним из трёх способов, о которых шла речь выше:
      • исключительно при помощи мышки;
      • с использованием клавиши Shift;
      • с использованием клавиши Ctrl.

    Кликаем по вертикальной шкале координат правой кнопкой мыши. Появляется контекстное меню. Отмечаем пункт «Скрыть».

  • Выделенные строки вследствие вышеуказанных действий будут скрыты.
  • Способ 5: лента инструментов

    Также скрыть строки можно, воспользовавшись кнопкой на ленте инструментов.

      Выделяем ячейки, находящиеся в строках, которые нужно скрыть. В отличие от предыдущего способа всю строчку выделять не обязательно. Переходим во вкладку «Главная». Щелкаем по кнопке на ленте инструментов «Формат», которая размещена в блоке «Ячейки». В запустившемся списке наводим курсор на единственный пункт группы «Видимость»«Скрыть или отобразить». В дополнительном меню выбираем тот пункт, который нужен для выполнения поставленной цели – «Скрыть строки».

  • После этого все строки, которые содержали выделенные в первом пункте ячейки, будут скрыты.
  • Способ 6: фильтрация

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

      Выделяем всю таблицу или одну из ячеек в её шапке. Во вкладке «Главная» жмем на значок «Сортировка и фильтр», который расположен в блоке инструментов «Редактирование». Открывается список действий, где выбираем пункт «Фильтр».

    Можно также поступить иначе. После выделения таблицы или шапки переходим во вкладку «Данные». Кликам по кнопке «Фильтр». Она расположена на ленте в блоке «Сортировка и фильтр».

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

    Открывается меню фильтрации. Снимаем галочки с тех значений, которые содержатся в строках, предназначенных для скрытия. Затем жмем на кнопку «OK».

  • После этого действия все строки, где имеются значения, с которых мы сняли галочки, будут скрыты при помощи фильтра.
  • Способ 7: скрытие ячеек

    Теперь поговорим о том, как скрыть отдельные ячейки. Естественно их нельзя полностью убрать, как строчки или колонки, так как это разрушит структуру документа, но все-таки существует способ, если не полностью скрыть сами элементы, то спрятать их содержимое.

      Выделяем одну или несколько ячеек, которые нужно спрятать. Кликаем по выделенному фрагменту правой кнопкой мыши. Открывается контекстное меню. Выбираем в нем пункт «Формат ячейки…».

    Происходит запуск окна форматирования. Нам нужно перейти в его вкладку «Число». Далее в блоке параметров «Числовые форматы» выделяем позицию «Все форматы». В правой части окна в поле «Тип» вбиваем следующее выражение:

    Жмем на кнопку «OK» для сохранения введенных настроек.

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

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    Понравилась статья? Поделить с друзьями:
  • Автоматическое скрытие столбцов excel
  • Автоматическое увеличение строк в excel
  • Автоматическое суммирование в excel строк
  • Автоматическое сравнение таблиц в excel
  • Автоматическое сравнение документов word