Помогите, пожалуйста, с формулой фильтрации данных по заданной дате.
Дано:
1. Google Docs таблица.
2. Данные вносятся по форме, с указанием даты.
3. Сводная таблица на соседнем листе, помесячная.
ССЫЛКА НА ПРИМЕР
4. [ссылка заблокирована по решению администрации проекта]
Задача:
1. На листе "Таблица учёта", в колонке "приход на склад" вывести данные из листа "база", колонки "приход семечки на склад", в соответствии с датой.
2. Данные нужно вывести ОДНОЙ формулой, которую прописываем в ячейке E5.
3. Формула должна обрабатывать массив ячеек База! C:C и выводить данные в ячейке из массива 'Таблица учёта'!E5:E35, в соответствии с датой из массива База! B:B и date('Таблица учёта'!C1; 'Таблица учёта'!A1; 'Таблица учёта'!C5:C35), где C1 - год, A1 - месяц, массив C5:C35 - дни месяца.
4. Опишу примерный алгоритм:
- Образуем двухмерный массив из двух столбцов База! B:B и База! C:C
- Фильтруем массивы так, чтобы остались только заполненные строки массива База! C:C, и соответственные им строки из массива База! B:B. В примере это {28.10.2012; 60000} - одна строка. Назвоём его "исход"
- Если на одну дату будет несколько записей - суммируем их.
- Берём два массива 'Таблица учёта'!E5:E35 и 'Таблица учёта'!C5:C35, а также ячейки 'Таблица учёта'!A1 и 'Таблица учёта'!С1. Последние три параметра - это число, месяц, год соответственно.
- Фильтруем массив 'Таблица учёта'!C5:C35, ячейки A1 и C1 и левый столбец массива "исход" (см. выше) на предмет соответствия даты. Если даты совпадают - подставляем в соответствующую строку массива 'Таблица учёта'!E5:E35 число и из правого столбца массива "исход". В данном примере - это дата 28.10.2012 и число 60000 в строке E32, соответствующей числу 28 в строке C32.
Можно конечно в каждую строку массива 'Таблица учёта'!E5:E35 поставить по формуле - но это сами понимаете, не практично. Выйдет примерно 300 формул на одну таблицу.
Может быть это как-то скриптом обыграть Если можно - подскажите код, пожалуйста бедному PHP-программисту.
Я не знаю весь синтаксис экселя, но отсутствие элементарных циклов for или while - напрягает