Функция, которая знает собственный адрес ячейки?
Я хотел бы написать функцию, которая сама знает адрес своей ячейки. Например, я хотел бы иметь возможность поместить функцию без аргументов в любую ячейку, и при вызове эта функция будет выполнять операцию, основанную на значении в ячейке непосредственно слева от нее.
Я попробовал следующее, и это отлично работает, если ячейка с функцией в ней является активной ячейкой, но в целом это не мой случай.
Function Test()
Test = Range(Application.ActiveCell.Address).Offset(0,-1)
End Function
Я предполагаю, что есть простое решение этой проблемы, но оно станет простым только тогда, когда вы это знаете!!!
Заранее спасибо!
(Эксель 365)
1 ответ
Не используйте VBA, если в этом нет необходимости.
=IF(relative_address=some_condition,{result if true},{result if false})
Например, если я хочу показать «Spooktacular» в H6, если G7 содержит «Scooby Dooby Don't», или ничего не отображать в противном случае, я бы сделал это:
=IF(G7="Scooby Dooby Don't","Spooktacular","")
Эту формулу можно скопировать в любую другую ячейку, и она всегда будет ссылаться на ячейку на один столбец левее и на одну строку вниз. Это происходит потому, что адрес записывается как G7, а не $G$7 (который привязывает и строку, и столбец к этой ячейке), или $G7 (который привязывает столбец к G) или G$7 (который привязывает строку к этой ячейке). 7).