Список проверки данных Excel из диапазона, указанного в вычисляемой ячейке

У меня есть несколько столбцов со значениями времени. При проверке данных я показываю список, который берет значения из скрытого столбца с большим диапазоном значений времени. В зависимости от значения другого поля я могу использовать части диапазона для отображения списка значений. Это отлично работает:

Источник:
=ЕСЛИ($b$6=$X$8;$X$13:$X$171;$X$193:$X$521)

СКРИНТ: для определенного значения в B6 требуется определенная часть диапазона X

Теперь в строках столбца C мне нужен список времени со значениями, начинающимися на 10 минут позже, чем в столбце B.
Для этого я могу прекрасно отследить положение B+10 минут с помощью функции Match. Я также добавляю +12, потому что список начинается с 13-й строки:

=СООТВЕТСТВИЕ(B13+ВРЕМЯ(0;10;0);X13:X326;1)+12
=> результат 24

Отсюда я могу точно определить диапазон, который мне нужен:

="$X"& MATCH(B13+TIME(0;10;0);X13:X326;1)+12 & ":$X100"
=> результат: $X24:$X100

Когда я вставляю эту формулу в поле «Источник», я получаю предупреждение: «Источник списка должен быть списком с разделителями или ссылкой на одну строку или столбец».

СКРИНШОТ: Оповещение о формуле диапазона

В качестве обходного пути я поместил формулу в ячейку, но тогда строка отображается как обычный текст, а не как диапазон (см. снимок экрана).

Как узнать в поле «Источник», что это диапазон?

СКРИНШОТ: строка применяется как обычный текст, а не как диапазон

Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
0
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Это повторяющийся вопрос.

Просто поместите формулу (которая генерирует диапазон в виде строки) в ячейку и в поле источника раскрывающегося списка используйте команду Excel ДВССЫЛ.

Если ваша формула

 = "$X"& MATCH(B13+TIME(0;10;0);X13:X326;1)+12 & ":$X100"

находится в ячейке Z15, помещенной в источник списка проверки данных:

=INDIRECT(Z15)

Большое спасибо, Нельсон. Я пытался найти ответ, но это было не так очевидно, чтобы искать.

amavg 10.07.2024 17:32

Если мой ответ решил вопрос, пожалуйста, отметьте его.

Nelson 10.07.2024 21:45

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