2016-08-13 2 views
0

У меня есть строка с ячейками, содержащими 1 или 0 в случайной последовательности. В следующей строке, у меня есть функция, которая находит вхождение ячейки, содержащей в 1, а затем ячейку, содержащую 0.найти первое вхождение в случайном порядке последовательности

=IF(AND(A2=1,B2=0), "TRUE","FALSE") 

То, что я хотел бы сделать, это эхо из значения ячейки в row1 в том же столбце, где первое вхождение 1 произошло в строке2.

 +-----+-----+-----+-----+-----+-----+-----+ 
    |A |B |C |D |E |F |G | 
    +-----+-----+-----+-----+-----+-----+-----+ 
row1 |79.8 |76.4 |78.6 |77.1 |78.9 |71.2 |69.1 | 
    +-----+-----+-----+-----+-----+-----+-----+ 
row2 |0 |1 |1 |1 |0 |1 |0 | 
    +-----+-----+-----+-----+-----+-----+-----+ 
row3 |FALSE|FALSE|FALSE|FALSE|TRUE |FALSE|TRUE | 
    +-----+-----+-----+-----+-----+-----+-----+ 

Таким образом, в приведенном выше примере, моя функция будет возвращать значение TRUE для E2 и G2, а TRUE, хотя я хочу вернуться 76.4 для E3 и 71,2 для G3, так как именно там пробег 1s начал, ведущих к 1, затем последовательностью 0.

Есть ли способ сделать это в Excel?

Спасибо!

+0

Кстати: Вы можете сократить '= ЕСЛИ (И (А1 = 1, B1 = 0), "TRUE", "FALSE") ' в '= AND (A1 = 1, B1 = 0) ' –

+0

Эй, спасибо, я хотел бы вернуть значение из B1. – joshwa

ответ

1

В ячейке C3 введите

=IF(AND(B2=1,C2=0),INDEX(1:1,1,1+LARGE(COLUMN($A2:A2)*($A2:A2=0),1))) 

затем нажмите CTRL + SHIFT + ENTER, чтобы ввести его в качестве формулы массива.
Затем вы можете скопировать ячейку C3 в D3: Z3.

результат: enter image description here

+0

@ Joshwa, если вы хотите, чтобы я объяснил что-нибудь просто спросить, не волнуйтесь –

+0

благодарит за вашу помощь. См. Правки в оригинальном вопросе. Я хочу вернуть данные из строки1, где запуск 1s начался в строке2. – joshwa

+0

@Joshwa обновлен. –

Смежные вопросы