![]() |
Libreoffice Calc - выпадающий список с отбором по условию
Добрый день
В LibreOffice Calc через "Данные \ Проверка" можно сделать выбор значения из выпадающего списка. Источником выбираемых значений может быть и список строк, и диапазон ячеек (в том числе именованый диапазон) Вопрос: как сделать формирование списка значений по определённым условиям? Например: есть таблица вида "Отдел | Работник". На другом листе оператор в одной ячейке выбирает из списка отдел, а затем в другой ячейке - работника этого отдела. Причём в списке должны присутствовать только работники этого отдела. Для первой ячейки достаточно указать источник данных - столбец "Отдел" искомой таблицы (дубли будут скрыты). С этим проблем нет. А для второй? LibreOffice пишет подсказку: "допустимо только непрерывное выделение строк и столбцов, или формулу, возвращающую диапазон ячеек или массив". Как я понимаю, нужно использовать формулу, которая сделает выборку данных из таблицы и вернёт список строк? Что это за формула? |
Цитата:
|
Iska, знаю, что тут по функционалу больше LibreOffice Base подходит. А лучше вообще сразу "1С: Предприятие" :lol:
Отделы, работники - это я взял просто для примера. У меня используются другие показатели учёта. Просто до недавнего времени для получения конечных сведений вполне хватало нескольких таблиц Calc А теперь "сверху" озадачили необходимостью печатать промежуточные результаты. Осваивать BASE и повторно забивать все сведения (или писать импорт/экспорт) особо некогда. То же самое могу сказать про 1С. На следующий год может быть и сделаю всё на 1С, чтобы всё было очень удобно и красиво. А сейчас для быстрого решения конкретной проблемы вроде бы как достаточно ввести пару формул (особенно если они есть). Просто до этого мне не приходилось работать с формулами массивов |
Ради поиска одной старой темы открыл список своих тем, увидел эту и вспомнил, что нашёл решение проблемы. Оказывается, оно достаточно простое
Для использования выпадающих списков с отбором по условию в окне "Данные \ Проверка..." в качестве Источника нужно указывать такие вот формулы Код:
ЕСЛИ(Ст_Перечень_Процедур_КОСГУ=$F2; ЕСЛИ(Ст_Перечень_Процедур_ОКПД=$C2; Ст_Перечень_Процедур_Наименование; ""); "") Каждый диапазон должен иметь одинаковое количество строк. $F2 и $C2 - это адреса ячеек текущей строки конечной таблицы Проверка производится для каждой строки таблицы-источника. Каждая формула ЕСЛИ проверяет соответствие значения ячейки указанного столбца (здесь код КОСГУ или ОКПД) значению поля конечной таблицы. Вместо равенства можно использовать любые другие операции сравнения и условные функции. Когда все проверки ЕСЛИ завершаются истиной, программа добавляет в выпадающий список значение из столбца "Наименование" Если же хотя бы одно ЕСЛИ завершается ложью, в список выбора поступает пустая строка (""), которая при отображении списка глушится параметром "Пропуск пустых строк". В результате мы наблюдаем в списке выбора только те значения, которые нам нужны. |
Время: 08:11. |
Время: 08:11.
© OSzone.net 2001-