Поиск в Excel с несколькими запросами - PullRequest
1 голос
/ 17 августа 2011

У меня есть вопрос, о котором я, возможно, не думаю правильно. Но у меня есть длинный файл Excel, который я извлекаю откуда-то еще со следующими столбцами:

Project_Name1, Employee_Name1, Date_Worked1, Hours_Worked1

На другом листе у меня есть эти столбцы

Project_Name2, Employee_Name2, Begin_Date2, End_Date2, Hours_Worked2

Этот второй лист заполнен данными и работает просто отлично. Однако оказывается, что у меня есть имена сотрудников, которых я не знаю, которые также работают над тем же проектом. Мне нужно выяснить имена сотрудников, а затем суммировать количество часов, которые они работали в течение определенного периода. Поэтому мне нужен поиск с тремя критериями:

Project_Name1 = Project_Name2

Employee_Name1 <> {Массив Employee_Name2}

Begin_Date2 <= Date_Worked1> End_Date2

Возвращение имени сотрудника.

Получив имя сотрудника, я могу сделать суффикс = () и получить общее количество отработанных часов без проблем.

Я попробовал несколько комбинаций функций Index Match, используя ctrl-shift-enter ... и не смог выяснить это. Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 17 августа 2011

Один из способов сделать это состоит в том, чтобы сначала создать дополнительный столбец справа от записей на листе, из которого вы пытаетесь получить имя сотрудника: =ROW()

Затем можно использовать формулу массива, напримервы пытались реализовать вытягивание соответствующей строки 'match':

{=SUM((project_name1=projectname2)*(employeename1<>employeename2)*(begindate<=date_worked1)*(date_worked1>end_date2)*(match_column))}

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

0 голосов
/ 17 августа 2011

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

  1. Можно создавать VLOOKUPs и SUMIF с несколькими критериями, объединяя поля для создания идентификатора, состоящего из нескольких частей (например: вставьте новый столбец и добавьте форум, например = A1 & B1)
  2. Откройте новую книгу и используйте Microsoft Query (я не уверен, что вы можете выбрать из нескольких листов, но если вы можете выбрать из нескольких листов, таких как таблицы, вы сможете написать полусложный запрос для извлечения набор данных, который вы хотите. http://office.microsoft.com/en-us/excel-help/use-microsoft-query-to-retrieve-external-data-HA010099664.aspx
  3. Используйте функцию встроенного макроса и используйте скрипт Visual Basic для написания вашей бизнес-логики. (Горячая клавиша ALT + F11)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...