Функция, которая знает собственный адрес ячейки?

Я хотел бы написать функцию, которая сама знает адрес своей ячейки. Например, я хотел бы иметь возможность поместить функцию без аргументов в любую ячейку, и при вызове эта функция будет выполнять операцию, основанную на значении в ячейке непосредственно слева от нее.

Я попробовал следующее, и это отлично работает, если ячейка с функцией в ней является активной ячейкой, но в целом это не мой случай.

      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).

Другие вопросы по тегам