Форум программистов, компьютерный форум, киберфорум
MS Office Excel
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 20
1

Форматирование заголовка умной таблицы по условию

28.06.2021, 07:08. Показов 1485. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Подскажите, пожалуйста, как реализовать задумку, если это вообще возможно без макросов?
Имеется умная таблица с любым кол-вом строк, в ней есть столбцы "Кол-во" и "Остаток".
Нужно чтобы если хоть в одной строке значение кол-ва < остатка, то заголовок таблицы выделяется форматированием ячеек (например, красным текстом).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.06.2021, 07:08
Ответы с готовыми решениями:

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

Как убрать форматирование таблицы по условию ?
Есть скрипт календаря, нужно чтобы если дней в месяце меньше чем ячеек в таблице - пустые ячейки не...

При переносе сложного заголовка таблицы в Word теряются границы ячеек заголовка
При переносе &quot;сложного&quot; заголовка таблицы в Word на следующий лист (на первом листе таблицы все...

Из умной таблицы в текстбокс
Что я делаю не так Me.CBHumans.List = Array(EmployeesListObj.Range(2))

11
3911 / 2311 / 782
Регистрация: 02.11.2012
Сообщений: 6,147
28.06.2021, 08:07 2
смотрите в сторону УФ. При наличии файла-примера ответ может быть более детальным.
1
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 20
28.06.2021, 08:33  [ТС] 3
Vlad999, как при помощи УФ выделить ячейку в строке, если там выполняется это условие, я знаю. Но можно ли при помощи УФ выделить заголовок, если в строках данных выполняется это условие?
Файл примера добавил. На листе может быть сколько угодно умных таблиц, а в таблицах - сколько угодно строк, с возможным удалением и добавлением.
Вложения
Тип файла: xlsx Книга.xlsx (12.0 Кб, 12 просмотров)
0
3911 / 2311 / 782
Регистрация: 02.11.2012
Сообщений: 6,147
28.06.2021, 09:35 4
проверяйте, для каждой таблицы придется делать свое правило.
Вложения
Тип файла: xlsx Книга.xlsx (11.4 Кб, 8 просмотров)
1
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 20
28.06.2021, 09:56  [ТС] 5
Vlad999, вроде бы то, что надо. Но только в формуле уф ипользуются обычные диапазоны E$2:$E$5 и $F$2:$F$5. Нельзя ли их заменить на диапазоны данных этих столбцов? Название_таблицы[[#Данные];[Кол-во]] и Название_таблицы[[#Данные];[Остаток]] соответственно.
Боюсь, что при изменении количества строк в таблице, в форматировании с обычными диапазонами начнется балаган.
0
3911 / 2311 / 782
Регистрация: 02.11.2012
Сообщений: 6,147
28.06.2021, 12:32 6
в 2007 с диапазонами умной таблицы не захотело работать, по этому заменил на обычные. На счет удаления и добавления нужно проверять.

Добавлено через 1 минуту
на одной таблице проверял, если добавлять или удалять в середине то все менялось норм.

Добавлено через 5 минут
еще, при использовании Название_таблицы[[#Данные];[Кол-во]] придется проверять на пусто еще, т.к. диапазон захватывает последнюю пустую строчку.
1
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 20
28.06.2021, 12:47  [ТС] 7
Vlad999, у меня в 2016 не даёт заменить обычный диапазон на "умный", пишет про ошибку в формуле.
А как пустые строки помешают сравнению? Если обычным диапазоном их тоже захватывать, всё хорошо работает.
Если не сложно, можете показать как удалось вставить диапазон умной таблицы в правило форматирования?

Добавлено через 7 минут
Или я неправильно понял, и умный диапазон в правило УФ не получается вставить? И про вставку строк речь шла при использовании обычного диапазона?
0
472 / 161 / 80
Регистрация: 07.10.2015
Сообщений: 379
28.06.2021, 13:01 8
donch5555, посмотрите это (УФ верхней таблицы). И да, пустые диапазоны без проверки мешают - если нужно, проверку добавьте в формулу сами:
Вложения
Тип файла: xlsx Книга.xlsx (12.5 Кб, 7 просмотров)
1
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 20
29.06.2021, 05:14  [ТС] 9
Ruella, спасибо за формулу.
Пытался сам найти как исключить/не учитывать пустые ячейки в диапазоне, безрезультатно. Не подскажете, как это лучше сделать? Во всех умных таблицах нужны пустые строки (для добавления в будущем новых данных).
0
3911 / 2311 / 782
Регистрация: 02.11.2012
Сообщений: 6,147
29.06.2021, 09:24 10
Цитата Сообщение от donch5555 Посмотреть сообщение
не учитывать пустые ячейки в диапазоне, безрезультатно
подкорректировал формулу от Ruella,
Код
=СУММПРОИЗВ((ДВССЫЛ("ФИЛЬТРЫ_2[Кол-во]")<=ДВССЫЛ("ФИЛЬТРЫ_2[Остаток]"))*(ДВССЫЛ("ФИЛЬТРЫ_2[Кол-во]")<>""))
1
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 20
29.06.2021, 11:22  [ТС] 11
Vlad999, вот теперь работает отлично, большое спасибо.
И на последок еще вопрос, не совсем по разделу, но чтобы не создавать отдельную тему, спрошу тут. Можно ли как-нибудь (скорее всего, через макросы) автоматизировать подхват имени каждой таблицы и ввод этих значений в первую ячейку заголовка каждой таблицы на листе? Т.е. у таблицы с именем "Табл.1" в ячейке заголовка первого столбца (например, А1) должно быть текстовое значение "Табл.1".

Просто думаю, как упростить добавление УФ к каждой таблице, чтобы в правилах не менять каждый раз имя таблицы, а обойтись копированием.
Решил немного переиграть. В случае срабатывания УФ красным цветом выделяется не весь заголовок таблицы, а только заголовок столбца "Кол-во". И, если правило немного поменять:
Код
=СУММПРОИЗВ((ДВССЫЛ(A1&"[[Кол-во]]")<=ДВССЫЛ(A1&"[[Остаток]]"))*(ДВССЫЛ(A1&"[[Кол-во]]")<>""))
, и в каждой таблице в заголовке указать её имя, то копируя ячейку заголовка "Кол-во", будет так же копироваться и УФ, с автоизменением ссылки в правиле УФ (вместо A1). Если непонятно объяснил, прикрепил файл, ячейку E1 скопировал и вставил в E8.
Вложения
Тип файла: xlsx Книга.xlsx (12.5 Кб, 3 просмотров)
0
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 20
29.06.2021, 11:38  [ТС] 12
Нашел такой код (ссылка)
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Function getObjName(rng As Range) As String
‘Updated by Extendoffice 20180420
    Dim xTable As ListObject
    Dim xPivotTable As PivotTable
    Dim xTableName As String
    Dim xPtName As String
    On Error Resume Next
    xTableName = ""
    xPtName = ""
    Set xTable = rng.Cells(1).ListObject
    xTableName = xTable.Name
    If xTable Is Nothing Then
        Set xPivotTable = rng.Cells(1).PivotTable
        xPtName = xPivotTable.Name
    End If
    getObjName = xTableName & xPtName
End Function
И вроде это то, что надо (после небольших исправлений, чтобы текстом было только название таблицы). Но проблема в том, что в заголовке умной таблицы нельзя писать формулы, и я не знаю как это обойти. Плюс, тут подразумевается ручной ввод функции =getObjName(), а хотелось бы, чтобы это делал макрос на большое количество умных таблиц.
0
29.06.2021, 11:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.06.2021, 11:38
Помогаю со студенческими работами здесь

(excel_2010_VBA) Сортировка умной таблицы
Здравствуйте. Проблема заключается в том, что если указать конкретное имя таблицы, то сортировка...

Поиск умной таблицы по имени
Существует главнаяТаблица, в которую данные заносятся из формы, в т.ч. данные: -...

Увеличение диапазона умной таблицы
Здравствуйте!!! Срочно нужна помощь!!! Я не силен в VBA, а мне необходимо сделать программный код....

Удаление выделенных строк из умной таблицы
Ребят есть умная таблица с фамилиями (3 столбца)....человек тыкает на нужные (в любой столбец...

Подставить диапазон (столбец умной таблицы) в массив
Уважаемые форумчане! Пожалуйста, подскажите. Нужно в массив вставить столбец умной таблицы....

Поместить в Комбобокс отфильтрованную колонку умной таблицы
Ребят, как в Комбобокс поместить отфильтрованную колонку умной таблицы. от а до я Private...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru