2

Я хочу просмотреть массив с 10 столбцами и 17 строками, которые содержат 0 в большинстве ячеек.

Мне нужно сканировать сверху вниз ряд за строкой и хочу выделить индекс (в строке 1 как 5) в месте L3 на листе для первого появления числа 1.

Вы можете видеть, что сначала значение 1 появляется на E10.

Я не могу понять, какую формулу Excel поставить для получения значения 5(индекс в строке 1, соответствующей столбцу E10) для обнаружения 1 в первый раз в столбце E, который должен вывести значение 5 на L3.

2 ответа2

0

Я не уверен, что это будет работать для вас, но вы могли бы использовать формулу

= ПОИСКПОЗ (1, А3:J3,0)
в L3, а затем перетащите вниз до L20. Результат покажет, в каком столбце найдено первое вхождение строки поиска. Вот пример:

Если это довольно неуклюжее решение не сработает, я думаю, что потребуется пользовательская функция, чтобы получить то, что вы хотите. Это не будет слишком сложно, всего лишь пара циклов for/next. Я мог бы написать это, но так как я не пишу код постоянно, это может занять некоторое время.

0

Я нашел решение вашей проблемы. Используйте следующую формулу в L3:

=INDEX(A1,J1,1,MATCH(1,INDIRECT("A"&SMALL(IF(A3,J20=1,ROW(A3,J20),5000),1)&":J"&SMALL(IF(A3:J20,ROW(A3:J20),5000),1)),0))

Объяснение:

  • A1:J1 - диапазон поиска
  • 1 строка поиска
  • SMALL(IF(A3:J20=1,ROW(A3:J20),5000);1) Находит все строки, содержащие 1, а затем возвращает наименьшее (я добавил 5000, чтобы убедиться, что ложная опция if определенно не равна ' т наименьшее число в этом массиве)
  • Затем функция INDIRECT используется для построения "строки", в которой MATCH может искать нужное число для использования в INDEX.

Вы всегда можете задать дополнительные вопросы, если мой ответ не ясен.

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