2016-11-08 8 views
-1

Я использую массив UDF для выбора элементов из большого файла данных, соответствующих нескольким критериям. Формула отлично работает, когда у меня есть несколько подходящих элементов, но когда есть только один подходящий элемент. Элемент продолжает повторяться бесконечно.Array UDF продолжает повторять одно значение

Пример вывода нескольких правомочные элементов:

A 
B 
C 
N/A 
N/A 

Пример вывода 1 правомочные элементы:

A 
A 
A 
A 
A 

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

Transpose example

Знает ли кто способ избежать такого поведения?

+1

Трудно узнать, не видя кода - [добровольно опубликовать код] (http://stackoverflow.com/help/how-to-ask). – BruceWayne

+1

Помогите нам помочь. ** Опубликуйте свой текущий код. ** –

+0

См. Http://stackoverflow.com/a/40451062/6535336 - если вы скопируете несколько значений в диапазон, который больше, но с точным кратным больше, значения повторятся - поэтому копирование двух значений в 8 ячеек приведет к повторному повторению двух значений 4 раза, копирование одного значения на весь столбец приведет к повторному повторению одного значения 1048576 раз, но копирование 7 значений в 24 ячейки приведет к тому, что значения будут только вставлен один раз (поскольку 7 не является фактором 24). Итак, насколько большой ваш целевой диапазон? – YowE3K

ответ

1

Если вы используете UDF в контексте формулы массива, то вы можете убедиться, что ваш выходной массивом является правильным размером, глядя на

Application.Caller 

внутри ОДС.

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

 Смежные вопросы

  • Нет связанных вопросов^_^