Как естественным образом разветвляться в Excel?

#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

введите описание изображения здесь