Функция массива только возвращает первое значение

841
Dizz

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

{= ИНДЕКС (А: А, МИН (ЕСЛИ (ИТОГО (3, OFFSET (А2, СТРОКА (А2: А31) -строка (А2), 0)), СТРОКА (А2: А31))))}

Проблема в том, что возвращаемое значение является только первым результатом, то есть если после фильтра первая ячейка будет A9, когда я перетаскиваю формулу, она будет возвращать только значение A9 во всех ячейках. Это моя первая попытка использования функции массива, поэтому я не знаю, что проверять, я думаю, что сама формула верна, но, поскольку это моя первая попытка, может быть, я что-то упустил. Я уже нажимаю Ctrl + Shift + Enter для проверки.

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

0

1 ответ на вопрос

1
Gary's Student

Я задал тот же вопрос некоторое время назад и получил хороший ответ от Рона Кодерра

Он предложил решение как с массивом, так и без массива. Формулы сложны. Я предлагаю очень простой, интуитивно понятный подход, в котором используются простые формулы без массивов со вспомогательным столбцом.

Скажем, у нас есть данные в столбцах A и B . В C2 введите:

=SUBTOTAL(3,$A$2:$A2) 

и скопировать вниз:

enter image description here

Вспомогательный столбец - это простой набор последовательных значений. Теперь мы отфильтруем собаку :

enter image description here

Помощник настроен так, чтобы оставаться простой последовательной последовательностью! Это позволяет нам использовать стандартный MATCH()/INDEX()подход для захвата видимых данных. В Sheet2ячейку А1 введите:

=IFERROR(INDEX(Sheet1!A:A,MATCH(ROWS($1:1),Sheet1!C:C,0)),"") 

и скопировать вниз:

enter image description here

Если вы не можете использовать вспомогательный столбец, попробуйте одну из формул Кодера.

Я попробовал вашу формулу, и она работает, она даже помогает в качестве справки, чтобы исправить мою другую формулу. Я не нашел, что заставляет мою предыдущую формулу не работать, но ваша проще, поэтому я буду использовать ее сейчас. Большое спасибо. Dizz 5 лет назад 0

Похожие вопросы