Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Вопрос об автоматическом формировании динамического списка - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Вопрос об автоматическом формировании динамического списка
ebmaster Дата: Понедельник, 05.08.2013, 12:11 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день. Имеется документ с десятью листами, в которых содержатся данные. Задача - собрать выборку информации из этих листов в один динамический список на основании определенных параметров. В моем случае, это дата не ближе и не дальше недели. Очевидно, что этот список имеет количество строк в зависимости от вбитых данных и конкретной даты. Т.е. сегодня может быть 10 строк, завтра 0, а послезавтра 20.
Заранее прошу не бить меня за следующие строки, но я попытаюсь объяснить почему я спрашиваю на этом форуме (по спридшиту русскоязычных просто нет).
Для того, чтобы можно было совместно и удобно редактировать данный документ из любой точки я импортнул экселевскую таблицу в google spreadsheet. Я знаю, что функционал этого продукта основан на базе OpenOffiice, но, согласитесь, у них очень много схожего.
Данные определенных пяти ячеек, соответствующие условию ближайшей недели я успешно импортирую с помощью данной нехитрой формулы:
Код
=FILTER('Лист1'!B2:F;DAYS360(TODAY();'Лист1'!F2:F)>0;DAYS360(TODAY();'Лист1'!F2:F)<8)
Знаю, что у экселя есть аналог.
Данная формула работает только с одним листом. Теперь сама суть вопроса.
Мне нужно импортировать данные с десяти листов этого документа. Ничего умнее, чем вставить формулы в следующие за первой с формулой строчки я не придумал. Таким образом я имею 10 строк подряд с формулами. Проблема заключается в том, что при формировании списка с листа из более чем одной строки, она тупо переписывает формулу под ней. Насколько я знаю, подобная проблема возникнет и в экселе. Решение, на данный момент, я вижу только одно. Оставить запас в виде определенного количества пустых строк между формулами. У такого метода я вижу два недостатка: эстетическая сторона, ибо пропуски попросту некрасивы и мешают восприятию информации, и практическую: любой лимит рано или поздно может быть превышен и данные снова перекроют формулы.
Пожалуйста, дайте напутствие, как грамотно собрать данные. На примере того же экселя, а как это адаптировать под спридшит я уже разберусь сам. Спасибо и извините еще раз за оффтоп.
 
Ответить
СообщениеДобрый день. Имеется документ с десятью листами, в которых содержатся данные. Задача - собрать выборку информации из этих листов в один динамический список на основании определенных параметров. В моем случае, это дата не ближе и не дальше недели. Очевидно, что этот список имеет количество строк в зависимости от вбитых данных и конкретной даты. Т.е. сегодня может быть 10 строк, завтра 0, а послезавтра 20.
Заранее прошу не бить меня за следующие строки, но я попытаюсь объяснить почему я спрашиваю на этом форуме (по спридшиту русскоязычных просто нет).
Для того, чтобы можно было совместно и удобно редактировать данный документ из любой точки я импортнул экселевскую таблицу в google spreadsheet. Я знаю, что функционал этого продукта основан на базе OpenOffiice, но, согласитесь, у них очень много схожего.
Данные определенных пяти ячеек, соответствующие условию ближайшей недели я успешно импортирую с помощью данной нехитрой формулы:
Код
=FILTER('Лист1'!B2:F;DAYS360(TODAY();'Лист1'!F2:F)>0;DAYS360(TODAY();'Лист1'!F2:F)<8)
Знаю, что у экселя есть аналог.
Данная формула работает только с одним листом. Теперь сама суть вопроса.
Мне нужно импортировать данные с десяти листов этого документа. Ничего умнее, чем вставить формулы в следующие за первой с формулой строчки я не придумал. Таким образом я имею 10 строк подряд с формулами. Проблема заключается в том, что при формировании списка с листа из более чем одной строки, она тупо переписывает формулу под ней. Насколько я знаю, подобная проблема возникнет и в экселе. Решение, на данный момент, я вижу только одно. Оставить запас в виде определенного количества пустых строк между формулами. У такого метода я вижу два недостатка: эстетическая сторона, ибо пропуски попросту некрасивы и мешают восприятию информации, и практическую: любой лимит рано или поздно может быть превышен и данные снова перекроют формулы.
Пожалуйста, дайте напутствие, как грамотно собрать данные. На примере того же экселя, а как это адаптировать под спридшит я уже разберусь сам. Спасибо и извините еще раз за оффтоп.

Автор - ebmaster
Дата добавления - 05.08.2013 в 12:11
Serge_007 Дата: Вторник, 06.08.2013, 11:29 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
В Excel нет функции FILTER()

Тему перенёс в соответствующий раздел

ЗЫ Оформляйте коды тегами!


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеВ Excel нет функции FILTER()

Тему перенёс в соответствующий раздел

ЗЫ Оформляйте коды тегами!

Автор - Serge_007
Дата добавления - 06.08.2013 в 11:29
ebmaster Дата: Вторник, 06.08.2013, 17:46 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Serge_007, не ругайте меня, я не со зла.
В общем, сам спросил, сам отвечаю. Изначально у Google SpreadSheet нет возможности компоновки формул. Для этого из каталога скриптов устанавливаем Vmerge, после чего доступна функция, принимающая в качестве параметров другие функции с разделителем в виде ;
Данная функция не умеет выводить пустые ячейки, т.е. в случае, если из одного листа по условиям фильтра выводить нечего, то мы получим ошибку. Чтобы избежать этой ошибк, используем проверку в виде функции IFERRROR()
В итоге, моя формула для вывода динамического списка из нескольких листов с фильтрацией по дате (на ближайшую неделю) выглядит таким образом:
Код
= vmerge(IFERROR(FILTER('Лист1'!A2:L;DAYS360(TODAY();'Лист1'!E2:E)>0;DAYS360(TODAY();'Лист1'!E2:E)<8));IFERROR(FILTER('Лист2'!A2:L;DAYS360(TODAY();'Лист2'!E2:E)>0;DAYS360(TODAY();'Лист2'!E2:E)<8));IFERROR(FILTER('Лист3'!A2:G;DAYS360(TODAY();'Лист3'!E2:E)>0;DAYS360(TODAY();'Лист3'!E2:E)<8)))
 
Ответить
СообщениеSerge_007, не ругайте меня, я не со зла.
В общем, сам спросил, сам отвечаю. Изначально у Google SpreadSheet нет возможности компоновки формул. Для этого из каталога скриптов устанавливаем Vmerge, после чего доступна функция, принимающая в качестве параметров другие функции с разделителем в виде ;
Данная функция не умеет выводить пустые ячейки, т.е. в случае, если из одного листа по условиям фильтра выводить нечего, то мы получим ошибку. Чтобы избежать этой ошибк, используем проверку в виде функции IFERRROR()
В итоге, моя формула для вывода динамического списка из нескольких листов с фильтрацией по дате (на ближайшую неделю) выглядит таким образом:
Код
= vmerge(IFERROR(FILTER('Лист1'!A2:L;DAYS360(TODAY();'Лист1'!E2:E)>0;DAYS360(TODAY();'Лист1'!E2:E)<8));IFERROR(FILTER('Лист2'!A2:L;DAYS360(TODAY();'Лист2'!E2:E)>0;DAYS360(TODAY();'Лист2'!E2:E)<8));IFERROR(FILTER('Лист3'!A2:G;DAYS360(TODAY();'Лист3'!E2:E)>0;DAYS360(TODAY();'Лист3'!E2:E)<8)))

Автор - ebmaster
Дата добавления - 06.08.2013 в 17:46
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!