Как лучше всего использовать Index Match в этом случае? - PullRequest
1 голос
/ 11 июня 2019

В основной рабочей таблице у меня есть список сотрудников в столбце A, из столбцов D: ZZ У меня есть в основном календарь в строке 11. Там, где они пересекаются, я назначил код задачи каждому сотруднику, чтобы проиллюстрировать, кто он такой. нанят, чтобы сделать этот день. Я хочу динамически окрашивать закодированную ячейку на основе даты в строке 11 и кода из столбца, в который она была введена. На моем втором листе у меня есть таблица кодов вдоль столбца A. Из столбцов B: AM, в строке 2 (под заголовком) у меня есть другой код, который говорит, что это за работа в офисе, в дороге, и т.д. Это код, который я пытаюсь найти с помощью Index Match. В строке с кодом задачи, под каждым заголовком у меня есть запланированная дата, что это конкретное задание будет либо входить, либо выходить, либо ничего.

Я могу довольно легко проиндексировать столбец задачи, моя проблема в том, как мне взять строку, полученную из этого, затем искать только в этой строке дату, когда я применил код к сотруднику, чтобы получить результат из строки 2 и столбец, в котором указана эта дата?

Я достаточно хорошо понимаю индекс / совпадение при поиске нескольких элементов, чтобы получить результат. У меня проблема с созданием диапазона из результата, чтобы найти нужные данные.

Я пробовал Indirect и Address, а также Offset, но я не хочу, чтобы это было изменчивым, поскольку оно используется для условного форматирования нескольких тысяч ячеек.

Рабочий лист расписания кода задачи

DAY     1   2   3   4   ...
CODE    A   S   A   F   ...
96T003  03 May  04 May  05 May  06 May  ...
96T004  05 May  06 May  07 Jun  10 Jun  ...
96T005  05 May  19 Jul  22 Jul  23 Jul  ...

Основная рабочая таблица

            SAT SUN MON TUE WED
     DATE   01  02  03  04  05                  
     JONES  OFF OFF 96T003  96T003  96T004
     DAVIS  OFF OFF 96T003  96T003  96T005

Эта формула работает, но она "изменчива", и я намерен использовать ее в функции условного форматирования. Есть ли способ сделать его не таким изменчивым?

 =INDEX(CMP_FLYCODE,1,MATCH(F11,INDIRECT("'CMP'!"&ADDRESS(MATCH(F19,CMP_ADP,0),1)&":"&ADDRESS(MATCH(F19,CMP_ADP,0),40)),0))

CMP_FLYCODE - ссылка на строку кода A, S и F

Ожидается возврат буквенного кода A, S или F на основе даты и кода

Редактировать: Добавлен заголовок к расписанию кодов, который является уникальным номером дня задания 1, 2, 3 ...

1 Ответ

0 голосов
/ 11 июня 2019

Я не думаю, что это слишком плохо, вы можете просто получить всю строку из 2d массива B3: E5 в листе задач, используя индекс с соответствием для кода задачи в параметре строки и 0 в параметре столбца,затем сопоставьте указанную дату и снова используйте индекс, чтобы получить необходимый буквенный код.

Вот как выглядит моя формула:

=IF(C3="OFF","",INDEX(Tasks!$B$2:$E$2,MATCH(C$2,INDEX(Tasks!$B$3:$E$5,MATCH(C3,Tasks!$A$3:$A$5,0),0),0)))

Это мой основной лист:

enter image description here

Это мой лист заданий:

enter image description here

Таким образом, чтобы использовать это в условныхДля форматирования вам понадобятся три правила с использованием пользовательских формул

=INDEX(Tasks!$B$2:$E$2,MATCH(C$2,INDEX(Tasks!$B$3:$E$5,MATCH(C3,Tasks!$A$3:$A$5,0),0),0))="A"

=INDEX(Tasks!$B$2:$E$2,MATCH(C$2,INDEX(Tasks!$B$3:$E$5,MATCH(C3,Tasks!$A$3:$A$5,0),0),0))="S"

=INDEX(Tasks!$B$2:$E$2,MATCH(C$2,INDEX(Tasks!$B$3:$E$5,MATCH(C3,Tasks!$A$3:$A$5,0),0),0))="F"

с соответствующими цветами заливки.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...