интерпретация for = INDEX (Sheet2! $ B $ 2: $ B $ 1214, MATCH (1, (Sheet2! $ A $ 2: $ A $ 1214 = B2) * (Sheet2! $ F $ 2: $ F $ 1214 = O2), 0))
Привет, кто-нибудь может объяснить, что
=INDEX(Sheet2!$B$2:$B$1214,MATCH(1,(Sheet2!$A$2:$A$1214=B2)*(Sheet2!$F$2:$F$1214=O2),0))
Я попытался понять это, посмотрев функции Index with Match.
Match(1,-------
Почему этот первый параметр 1 для функции Match ()?
- Скрипт для перемещения 50 строк в следующий столбец - Excel
- Как объединить данные из нескольких ячеек в одну ячейку в Excel 2010?
- Сводные таблицы к суммам
- Как найти среднее среднее значение в Excel на основе значения столбца?
- Попытка найти способ получить данные с другого листа
- Подсчет чисел внутри ячейки
- Excel 2016 - Удаление 0 из формулы массива
- Как преобразовать тип данных Exponent в числовой формат в Excel.?
- Почему Excel так долго рассчитывает и производит неточные результаты?
- IF с двумя условиями (Excel)
- Найти первый ненулевой индекс массива в Excel
- Получить значение из диапазона, если ячейки соответствуют в Excel
- Преобразование текущих столбцов в строки
Похоже, ваша проблема связана с функцией MATCH, поэтому я просто объясню это. Давайте сначала предположим, что у нас есть некоторые данные в excel, как показано ниже.
$ A $ 1 = 2; $ A $ 2 = 7
$ B $ 1: $ B $ 5 = {1, 2, 3, 4, 5}
$ C $ 1: $ C $ 5 = {6, 7, 8, 9, 0}
Теперь мы попытаемся решить уравнение ниже:
$ B $ 1: $ B $ 5 = $ A $ 1
$ C $ 1: $ C $ 5 = $ A $ 2
То, что делает excel, это значение $ A $ 1 и сравнение его с $ B $ 1, $ B $ 2 и так далее. Результат вернется следующим образом:
"$ B $ 1: $ B $ 5 = $ A $ 1" = {FALSE, TRUE, FALSE, FALSE, FALSE}
"$ C $ 1: $ C $ 5 = $ A $ 2" = {FALSE, TRUE, FALSE, FALSE, FALSE}
Тогда мы это делаем.
($ B $ 1: $ B $ 5 = $ A $ 1) * ($ C $ 1: $ C $ 5 = $ A $ 2)
В каждом из результатов, которые мы получили выше, будут взяты 1 данные из одной и той же позиции, умножьте их и верните результат.
"{FALSE, TRUE, FALSE, FALSE, FALSE} * {FALSE, TRUE, FALSE, FALSE, FALSE}"
= {0, 1, 0, 0, 0}
Таким образом, функция MATCH будет иметь следующий вход.
MATCH (1, {0, 1, 0, 0, 0}, 0)
Это означает, что он попытается найти значение «1» в массиве и вернуть позицию значения FIRST, которое соответствует.
В нашем случае он вернется 2.
Затем этот «2» передается как row_num в функцию INDEX.
Вы можете объяснить все остальное самостоятельно.
Давайте рассмотрим формулу, начинающуюся с компонентов внутреннего MATCH
. Для этого я предполагаю, что это формула массива .
В качестве формулы массива Sheet2!$A$2:$A$1214=B2
дает вектор TRUE
и FALSE
зависимости от того, являются ли значения в Sheet2!$A$2:$A$1214
равными B2
. Аналогично, Sheet2!$F$2:$F$1214=O2
дает вектор TRUE
и FALSE
зависимости от того, равны ли значения в Sheet2!$F$2:$F$1214
равным O2
.
Теперь, (Sheet2!$A$2:$A$1214=B2)*(Sheet2!$F$2:$F$1214=O2)
умножает два вектора TRUE
и FALSE
по строкам. Поскольку TRUE*TRUE=1
, но FALSE*TRUE=TRUE*FALSE=FALSE*FALSE=0
, это дает вектор 1
и 0
зависящий от толкателя B2
равного Sheet2!$A$r
и O2
равен Sheet2!$F$r
для той же строки r
.
Затем MATCH(1, ...)
находит первую строку r
на Sheet2
где оба B2
равны Sheet2!$A$r
и O2
равны Sheet2!$F$r
для той же строки r
.
Наконец, INDEX
дает вам значение в Sheet2!$B$2:$B$1214
для этой строки r
.