Относительное положение ячейки на листах с выражением IF - PullRequest
0 голосов
/ 15 января 2019

У меня есть лист Excel (Лист 1) со списком именованных людей и их ответственных учебных групп ... в основном номера, назначенные различным обработчикам.

Мне нужно:

На листе 2 мне нужен оператор IF, который проверяет лист 1, столбец B и, если появляется имя определенного человека, возвращает значение непосредственно слева.

У меня есть что-то подобное на Листе 1:

Название группы
101 Фред
102 Вильма
103 Фреда
104 Фреда
105 Барни
106 Вильма

На листе 2 мне нужно это:

Барни Фред Вильма
105 101 102
& nbsp & nbsp103 106
& Nbsp104

Уравнение, которое я пытаюсь использовать в каждой ячейке на листе 2: "

= IF («Лист 1»! B: B = «Барни», относительное положение на одну ячейку слева от имени , "")

Заранее спасибо.

1 Ответ

0 голосов
/ 15 января 2019

Формула массива не требуется:

MINIFS($A$2:$A$7,$B$2:$B$7,D$1,$A$2:$A$7,">" & MAX(D$1:D1))

Просто простые МИНИФЫ. Затем оберните его в IF, чтобы удалить нули:

enter image description here

РЕДАКТИРОВАТЬ: дополнительные разъяснения в ответ на комментарий.

Я поместил обе таблицы на один лист для удобства, однако, при необходимости, их можно легко переместить на отдельный лист.

Формула работает путем выбора группы с наименьшим значением, имя которой указано в верхней части столбца И, который еще не был указан.

Итак:

MINIFS($A$2:$A$7,$B$2:$B$7,D$1,$A$2:$A$7,">" & MAX(D$1:D1))

Первый аргумент в формуле MINIFS - $A$2:$A$7. Это столбец, содержащий все группы, которые мы хотим выделить и перечислить по каждому имени.

2-й и 3-й аргументы ($B$2:$B$7,D$1) - это диапазон критериев и его значение. Это используется, чтобы отфильтровать любое имя, которое мы не хотим возвращать в этой конкретной ячейке (любое, которое не является "Барни" в случае D2). Обратите внимание, что D$1 в формуле не начинается с $, это означает, что мы можем просто перетащить формулу через другие столбцы имен, и она автоматически отфильтрует правильные имена.

4-й и 5-й аргументы ($A$2:$A$7,">" & MAX(D$1:D1)) также являются диапазоном критериев и его значением. Как бы то ни было, в случае значения на этот раз мы ищем максимальное значение в пределах диапазона. Мы смотрим на все группы, которые уже были перечислены по имени, и используем MAX, чтобы выбрать самую высокую. Обратите внимание, что в формуле есть $ перед первым «1», но не перед вторым. Это означает, что когда мы перетаскиваем формулу вниз, диапазон, в котором она ищет МАКС, автоматически расширяется и включает ячейку чуть выше текущей. Также обратите внимание, что перед любым из «D» нет $, так что при перетаскивании формулы вправо проверяемый диапазон также перемещается вправо. Когда у нас есть группа MAX, которая уже была указана для имени, мы сообщаем формуле MINIFS, что нужно смотреть только на группы, которые больше этого.

Если для имени, которое больше группы, указанной в списке, нет групп, формула MINIFS вернет 0. Чтобы таблица не отображала лот с нулями, мы просто говорим: «Если формула MINIFS вернет 0, верните вместо этого пустая строка:

=IF(<the result of the MINIFS>=0, "",<the result of the MINIFS>)

Итак, окончательная формула будет:

=IF(MINIFS($A$2:$A$7,$B$2:$B$7,D$1,$A$2:$A$7,">" & MAX(D$1:D1))=0,"",MINIFS($A$2:$A$7,$B$2:$B$7,D$1,$A$2:$A$7,">" & MAX(D$1:D1)))

Надеюсь, это имеет больше смысла для вас. Извините, если объяснение немного затянуто, но, поскольку вы не указали мне конкретную область, которую вы не поняли, я просто попытался расширить свое объяснение в целом. Если есть какая-то конкретная часть, которую вы хотите, чтобы я объяснил дальше, пожалуйста, дайте мне знать.

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