Как запретить Excel изменять формулы внутри ячеек?

у меня есть эта формула =IFERROR(VLOOKUP("Actual/Estimated Ship Units Forecast",'WD ALPS'!$A:$K,MATCH(Date1,'WD ALPS'!$A$651:$K$651,0),FALSE),"") Каждый раз, когда я запускаю макрос для повторного извлечения данных, указанных в этой формуле, Excel изменяет диапазон на единицу. (что портит все мои расчеты.) Итак, я иду от MATCH(Date1,'WD ALPS'!$A$651:$K$651,0) к MATCH(Date1,'WD ALPS'!$A$650:$K$650,0) без причины. Я хочу, чтобы он оставался постоянным независимо от того, что происходит с таблицей данных.

Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
1
0
28
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Одна из возможностей — использовать OFFSET. Это изменчивая функция, которая может привести к проблемам со временем отклика, но в небольших масштабах это обычно не проблема.

Вы бы заблокировали OFFSET для ячейки привязки, которая не изменяется макросом, который вы запускаете. В этом случае я предполагаю, что A1 не затронут. Вы можете изменить свою формулу на:

MATCH(Date1,OFFSET('WD ALPS'!$A$1,650,0):OFFSET('WD ALPS'!$A$1,650,10),0)

Другим способом, который не был бы изменчивым и не зависел бы от привязки, было бы использование INDEX таким же образом:

MATCH(Date1,INDEX('WD ALPS'!$1:$1048576,651,1):INDEX('WD ALPS'!$1:$1048576,651,11),0)

Это выбирает весь лист, а затем вырезает нужную часть с абсолютными фиксированными индексами. Недостатком является то, что он оценивает весь лист - я не уверен, что будет работать быстрее.

Эй, Марк, спасибо за ответ! Я попытался запустить формулу с добавленным, теперь она редактирует ее, чтобы выдать какую-то справочную ошибку. MATCH(Date1,OFFSET('WD ALPS'!#REF!,650,0):OFFSET('WD ALPS'!#REF!,650,10) Интересно, почему он все равно решает редактировать.

Jeremy Johnson 09.04.2022 21:42

Ух ты! Супер разочарование! Вы пробовали ИНДЕКС? кстати - у меня была опечатка в INDEX. Я исправлю это сейчас.

mark fitzpatrick 09.04.2022 21:48

Благодарю вас! Использование INDEX работало просто отлично. Мне действительно нужно больше изучить Index/Match. Еще раз, я ценю помощь!

Jeremy Johnson 09.04.2022 21:56

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