У меня есть 8 таблиц на одну рабочую книгу. Первый - еженедельный общий вид. Остальные семь разбиты на дни. Каждый день перечисляются некоторые имена людей, которые пришли на сайт. Так что в понедельник может быть визит Джо, Джона и Джека. Это значения в A1, A2 и A3 на листе понедельника. Вт может снова Джо, потом Райан, потом Эндрю. Таким образом, они будут составлять значения A1, A2 и A3 рабочего листа вторника, и так далее, и так далее.

В общей таблице необходимо указать все имена за неделю, но не дублировать ни одно из них. Так что в общем листе я хотел бы видеть что-то вроде:

Joe
John
Jack
Ryan
Andrew

Так что имена не дублируются. Я хотел бы сделать это без макросов, если это возможно. Формула, которую я начал создавать, станет очень длинной к тому времени, когда вы перейдете к десятому человеку или около того. Он включал =IF(AND( ),IF(AND( ), IF(AND... который использовался для каждой ячейки, которая потенциально может иметь имя в 1-й день - тогда я собирался проверить его на предмет чего-либо в день 2 и т. д. Вы можете видеть, как это будет очень долго.

Любая помощь приветствуется.

РЕДАКТИРОВАТЬ: Следующая формула сравнивает два списка и только добавляет уникальные имена в новый список:

=IFERROR(IFERROR(INDEX(Monday, MATCH(0, COUNTIF($C$1:C1, Monday), 0)),INDEX(List2, MATCH(0, COUNTIF($C$1:C1, List2), 0))), "")

(вам нужно нажать ctrl-shift-enter при помещении его в ячейку, чтобы он мог работать с диапазонами)

но я не понимаю этого достаточно, чтобы адаптировать его для использования в 7 списках. Есть идеи?

2 ответа2

0

ОП оставил ответ в вопросе!

=IFERROR( IFERROR( IFERROR( IFERROR( IFERROR( IFERROR( IFERROR( INDEX(ThurNames, MATCH(0, COUNTIF($B$2:B2, ThurNames), 0)), INDEX(FriNames, MATCH(0,COUNTIF($B$2:B2, FriNames), 0))), INDEX(SatNames, MATCH(0, COUNTIF($B$2:B2, SatNames), 0))), INDEX(SunNames, MATCH(0, COUNTIF($B$2:B2, SunNames), 0))), INDEX(MonNames, MATCH(0, COUNTIF($B$2:B2, MonNames), 0))), INDEX(TueNames, MATCH(0, COUNTIF($B$2:B2, TueNames), 0))), INDEX(WedNames, MATCH(0, COUNTIF($B$2:B2, WedNames), 0))), "")

Правильно, 7 вложенных операторов iferror. Если вы используете это, не забудьте нажать Ctrl + Shift + Enter, а не просто ввод, когда вы закончите.

0

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

= IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR(IFERROR, INERROR, INDEX, ThurNames, MATCH(0, COUNTIF, $ B $ 2:B2, ThurNames), 0)), INDEX(FriNames, MATCH(0, COUNTIF($ B)$ 2:B2, FriNames), 0))), INDEX(SatNames, MATCH(0, COUNTIF($ B $ 2:B2, SatNames), 0))), INDEX(SunNames, MATCH(0, COUNTIF($ B $ 2:B2, SunNames), 0))), INDEX(MonNames, MATCH(0, COUNTIF($ B $ 2:B2, MonNames), 0))), INDEX(TueNames, MATCH(0, COUNTIF($ B $ 2:B2, TueNames), 0))), INDEX(WedNames, MATCH(0, COUNTIF($ B $ 2:B2, WedNames), 0))), "")

NB: Это важно, если вы поместите это в панель формул - завершите ее, нажав Ctrl-Shift-Enter, иначе она не будет работать.

ctrl-shift-enter сообщает формулам, которые необходимы для работы с различными диапазонами данных.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .