#excel
#преуспеть
Вопрос:
Если упрощенная версия моей рабочей книги выглядит следующим образом:
Sheet1:
Id Case Rate
101 3 ?
204 1 ?
313 1 ?
...
Sheet2:
Case Rate
1 0.3
2 0.8
3 0.7
Я хочу заполнить столбец Rate в sheet1 на основе sheet2, я попробовал жестко закодировать его следующим образом
=if(B2=1, 0.3, if(B2=2, 0.8, if(B3=3, 0.7)))
Это работает для этого простого примера, но на самом деле у меня около 20 ветвей, так что было бы утомительно жестко кодировать его. Я ожидаю чего-то вроде
=BranchAndAssign(Sheet2!$A$1:$A$3, Sheet2!$B$1:$B$3)
Возможно ли это в Excel? Или есть какой-нибудь лучший способ, которым я могу это сделать?
Ответ №1:
Используйте Index
и Match
вместе или используйте VLookup
например, в ячейке C2
из Sheet1
INDEX(Sheet2!$B$2:$B$4, MATCH(B2, Sheet2!$A$2:$A$4,0))
Здесь говорится: «Найдите номер строки в массиве Sheet2!$A$2:$A$4
с точно таким же значением, как B2
, и верните значение из массива Sheet2!$B$2:$B$4
с этим номером строки.
- это то, что
0
в третьем аргументеMATCH
инструктирует
Подробнее читайте в MSDN:
Ответ №2:
Вам нужно VLOOKUP
=VLOOKUP(B2, Sheet2!A:B, 2)
Ответ №3:
Я думаю, что вы ищете lookup table
(VLOOKUP).
Ответ №4:
То, что вы ищете, — это VLOOKUP
в Excel
Предполагая, что ваши sheet2
данные распределены по Range C2 to D5
и ваши sheet1
данные распределены по B3 TO D6
, используйте следующую формулу в Sheet1 range D3