%20%D0%B2%20Excel%3F.png)
В чем польза:
=Cell(contents,x)
Почему бы просто не:
=X
например, в этом случае не будет:
=INDIRECT(ADDRESS(1,2))
работают так же, как:
=CELL("contents",INDIRECT(ADDRESS(1,2)))
решение1
Содержимое ячейки возвращает только значение в ячейке. Часто это единственное, что вам нужно, и во многих формулах было бы неплохо использовать =X в вашем примере (функция Cell также дает вам доступ к гораздо большему количеству информации о ячейке, например, к типу и т. д.).
Однако indirect позволяет вам сделать больше, так как вместо того, чтобы просто передать значение из ячейки, он создает ссылку на ячейку, которую затем можно использовать в формулах. Содержимое ячейки не позволит вам сделать это.
Cell позволит вам сделать следующее:
A1="thing I'm looking up"
=vlookup(cell.contents("contents",A1), myRange,1,false)
или даже это:
A1="B2"
B2="thing i'm looking up"
=vlookup(cell.contents("contents",indirect(A1)), myRange,1,false)
Но он не позволит вам сделать следующее:
A1="B3:C5"
vlookup("thing I'm looking up in " & A1, indirect(A1), 1, false)
где вы можете использовать адрес, хранящийся в A1, как ссылку для использования в формуле. Ячейка позволяет использовать только значение, а не как ссылку.
решение2
CELL("contents",...)
возвращается
Значение верхней левой ячейки в ссылке; не формула
(https://support.office.com/en-us/article/cell-function-51bd39a5-f338-4dbe-a33f-955d67c2b2cf)
Таким образом, результат использования CELL
функции по сравнению с простой ссылкой на диапазон будет отличаться, если ваша ссылка содержит несколько ячеек.