Синтаксис для INDEX()
: INDEX(array, row_num,[column_num])
. Вы указываете только row_num
с помощью MATCH()
в своей формуле.
Формула @ RET даст вам искомую ячейку, потому что она определяет и row_num
и column_num
.
В Excel есть полезная функция для устранения подобных проблем. Если вы выберете ячейку с вашей формулой, а затем щелкните внутри списка параметров одной из функций в вашей формуле, вы увидите раскрывающийся список, показывающий, какими должны быть параметры:
Затем, щелкнув один из параметров в раскрывающемся списке, вы увидите, что Excel считает, что этот параметр входит в вашу формулу. Именно это может помочь вам найти пропущенные запятые и скобки, но наиболее полезная функция - это когда вы нажимаете клавишу F9 - это позволяет Excel оценить выделенную часть вашей формулы:
На приведенном выше снимке экрана показано, что (B2:D2=B2)*(B2:D2=D2)
вычисляется в массив {0,0,0}
, поэтому MATCH()
не может найти там 1.
Если вы выделите две части продукта по отдельности, вы обнаружите, что (B2:D2=B2)
оценивается как {True,True,False}
а (B2:D2=D2)
оценивается как {False,False,True}
. Арифметические операции над массивами преобразуют True
и False
в 1 и 0 и выполняют эквивалент логического AND()
. Вот почему выражение вычисляется в массив из 0 - Нет True*True
, который дал бы 1.
Примечание. Если вы используете функцию F9, обязательно наберите UNDO (CTRL -Z) после этого. В противном случае, если вы введете « Return» или «tab» из формулы, Excel сохранит измененную формулу в этой ячейке. Я думаю, что они всегда любят раздавать плохое с хорошим.
Я надеюсь, что это поможет вам, и удачи.