Это может быть немного излишним, но это работает. Надеюсь, вы не против иметь промежуточный столбец «Не здесь» с пробелами, прежде чем достигнуть конечного результата (Не здесь 2).
За кулисами:
Именованные диапазоны в использовании:
- Реестр: (B3: B19)
- Настоящее время: (C3: C19)
- NotHere: (F3: F19)
Формула массива введена в диапазон (D3:D19)...
{=IF(ISERROR(MATCH(Roster,Present,0)),Roster,"")}
Формулы массивов, введенные в ячейки (E3:E19)...
{=IFERROR(INDEX(NotHere,SMALL(IF(FREQUENCY(IF(NotHere<>"",MATCH(ROW(NotHere),ROW(NotHere)),""),MATCH(ROW(NotHere),ROW(NotHere)))>0,MATCH(ROW(NotHere),ROW(NotHere)),""),ROW(A1)),COLUMN(A1)),"")}
{=IFERROR(INDEX(NotHere,SMALL(IF(FREQUENCY(IF(NotHere<>"",MATCH(ROW(NotHere),ROW(NotHere)),""),MATCH(ROW(NotHere),ROW(NotHere)))>0,MATCH(ROW(NotHere),ROW(NotHere)),""),ROW(A2)),COLUMN(A2)),"")}
так далее...
Хотя это решение выглядит сложным, оно будет работать независимо от того, где таблица размещена на рабочем листе. Он также удаляет ошибки #num
в Excel 2007, если вы используете эту версию.