Существуют ли такие вещи, как переменные в Формуле Excel?
Я ненавижу повторяющиеся функции, особенно в формулах Excel. Есть ли способ, которым я могу избежать чего-то вроде:
=IF (VLOOKUP(A1, B:B, 1, 0) > 10, VLOOKUP(A1, B:B, 1, 0) - 10, VLOOKUP(A1, B: B, 1, 0) )
[выше приведен простой пример проблемы, а не конкретная формула, с которой я работаю.]
8 ответов
вы можете определить имя для части VLOOKUP формулы.
- выделить ячейку, содержащую эту формулу
- в меню Вставка выберите пункт имя и нажмите кнопку Определить
- введите имя переменной (например, 'Value')
- в поле ссылается на введите формулу VLOOKUP:
=VLOOKUP(A1,B:B, 1, 0)
- Нажмите кнопку Добавить и закройте диалоговое окно
- в вашей оригинальной формуле замените части VLOOKUP именем, которое вы просто определено:
=IF( Value > 10, Value - 10, Value )
Шаг (1) важен здесь: я думаю, во второй строке вы хотите использовать Excel VLOOKUP(A2,B:B, 1, 0)
третья строка VLOOKUP(A3,B:B, 1, 0)
, etc. Шаг (4) достигает этого, используя относительные ссылки (A1
и B:B
), а не абсолютные ссылки ($A
и $B:$B
).
вы можете хранить промежуточные значения в ячейке или столбце (которые вы можете скрыть, если выберете)
C1: = VLOOKUP(A1, B:B, 1, 0)
D1: = IF(C1 > 10, C1 - 10, C1)
не связанные с переменными, ваш пример также будет решен с помощью MOD
:
=Mod(VLOOKUP(A1, B:B, 1, 0);10)
два варианта:
-
VLOOKUP
функция в собственной ячейке:=VLOOKUP(A1, B:B, 1, 0)
(В С1), то формула ссылается С1:=IF( C1 > 10, C1 - 10, C1 )
- создать UDF:
Function MyFunc(a1, a2, a3, a4)
Dim v as Variant
v = Application.WorksheetFunction.VLookup(a1, a2, a3, a4)
If v > 10 Then
MyFunc = v - 10
Else
MyFunc = v
End If
End Function
определение имени, содержащего поиск, является аккуратным решением, однако всегда кажется, что имя листа хранится со ссылкой на ячейку. Тем не менее, я думаю, если вы удалите имя листа в " кавычки, но оставьте "!"это может сработать.
нет способа определить переменную в строке формул в Excel. В качестве обходного пути вы можете поместить функцию в другую ячейку (необязательно, скрывая содержимое или помещая его в отдельный лист). В противном случае вы можете создать функция VBA.
да. Но не напрямую.
проще
- вы можете опубликовать Vlookup () в одной ячейке и использовать его адрес там, где это необходимо. - Это, пожалуй, единственный прямой способ использования переменных в Excel.
или
- вы можете определить Vlookup (reference)-10 как функцию-оболочку из макросов VBE. Нажмите Alt+f12 и используйте эту функцию
Я знаю, что это немного не по теме, но следуя решению, представленному Йонасом Бемером, на самом деле я думаю, что MOD-лучшее решение для вашего примера.
Если вы намеревались ограничить результат одной цифрой, MOD-лучший подход для его достижения.
ie. Предположим, что VLOOKUP (A1, B:B, 1, 0) возвращает 23. Ваша формула IF просто сделает этот расчет: 23-10 и вернет 13 в результате.
с другой стороны, MOD (VLOOKUP(A1, B: B, 1, 0), 10) разделит 23 на 10 и покажет остаток: 3.
вернемся к основной теме, Когда мне нужно использовать формулу, которая повторяет какую-то часть, я обычно помещаю ее в другую ячейку, а затем скрываю ее, как уже предлагали некоторые люди.