
У меня есть столбец данных и маркер рядом с ним. Подумайте:
ID#1 -- A
ID#2 -- B
ID#3 -- A
Я пытаюсь переместить только идентификационные номера с маркером A, поэтому мой конечный результат:
ИД#1
ИД#3
Это очень просто сделать с помощью VBA - отфильтровать диапазон, скопировать, вставить. Я пытаюсь найти решение этой проблемы без использования VBA. Я пробовал различные формулы массива - Index(range,sumproduct(row*criteria)), но у меня не получается заставить это работать. Как мне заставить это работать?
Вычислительная элегантность является важным фактором — лист, с которым я имею дело, должен был бы быть базой данных из-за его размера, но власть имущие отвергли эту идею.
решение1
Использовать:
=IFERROR(INDEX($A$1:$A$8,SMALL(IF($B$1:$B$8="A",ROW($B$1:$B$8),999999),ROW(A1))),"")
Small вернет идентификаторы с «A» для каждой строки (от наименьшего к наибольшему)
A1:A8 измените его так, чтобы он соответствовал вашему столбцу идентификаторов
B1:B8 измените его так, чтобы он соответствовал вашему столбцу A
Оставьте $ для фиксированных ссылок
нажмите Ctrl+ Shift+ Enterвместо Enterэто формула массива