Есть ли какая-либо документация поведения встроенных функций Excel, вызванных с аргументами Array?

(Я первоначально спросил это относительно stackoverflow. Однако Формулы Excel определенно колеблются между строкой между "программированием" и, гм, "супериспользование", таким образом, я верю, этот кросспостинг является соответствующим.)

Многие встроенные функции Excel могут взять аргументы Array. Иногда результат документируется в справку и иногда нет. Так:

=IF({1,0,1}, 42, 99)

возвратится {42, 99, 42}. Справка, для 'ЕСЛИ' аргументы Array покрытий. Но:

=INDEX({2,3,5,7,11}, {2,4})

возвратится {3, 7}. Это интуитивно, но я не могу найти источник Microsoft, который документирует его. И:

=INDEX({1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16}, {1,3},{2,4})

возвраты {2, 12}, который не интуитивен вообще.

Есть ли какой-либо источник, который покрывает эти использования меньшего-количества-общего-массива? Кажется, что должно быть один, но я не нахожу его в веб-поиске, потому что это требует использованию "Excel", "функции" и "массива"...

(Кроме того, кто-то может отметить этот вопрос с 'формулой массива', так как я испытываю недостаток в питании создать теги?)

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

=IF(ISNA(udf()), {1,2,3,4}, {5,6,7,8})

куда 'udf' возвращался, скажем, {1,2,3}, и формула оценивала к {5,6,7, #N/A}. Это удивило меня, даже при том, что я могу выяснить то, что продолжается и работа вокруг этого. Это просто прослушивает меня, что я не могу найти авторитетный источник, который размечает все это.

Свяжитесь с вопросом на stackoverflow (существует несколько ответов и некоторые комментарии, но ничто, что удовлетворяет вопрос прямо сейчас), здесь: https://stackoverflow.com/questions/3998632/is-there-any-documentation-of-the-behavior-of-built-in-excel-functions-called-wit

Править: Я сделал большое редактирование в stackoverflow версии этого вопроса и включил часть ответа Neal там. Дополнение находится очень на стороне "программирования" Формул Excel, тем не менее, таким образом, я не собираюсь повторять его здесь.

2
задан 23.05.2017, 15:41

2 ответа

Charles Williams отправил ссылку на свой сайт Моделей выбора решения, который имеет информацию, которую я искал в его ответе на stackoverflow:

https://stackoverflow.com/questions/3998632/is-there-any-documentation-of-the-behavior-of-built-in-excel-functions-called-wit/4003413 #4003413

Сама ссылка:

http://www.decisionmodels.com/optspeedj.htm

(Целый веб-сайт является превосходным ресурсом Excel, и его продукт FastExcel очень хорош, BTW.)

0
ответ дан 09.01.2020, 03:39

Я не знаю ни о чем полезном для движения с тем, что Вы делаете также: Я не могу помнить видеть пример использования формул массива (по крайней мере, с массивом, где можно было бы ожидать видеть единственную вещь. Вы будете видеть массивы, используемые в примерах ИНДЕКСНОЙ функции).

Я думаю, что это относительно просто, если Вы думаете о том, что произошло бы, если бы Вы расширились, массив (Там лучшая терминология для этого. Отредактируйте, если можно думать об одном). Где Вы используете аргумент Array, где функция ожидала бы нормальный аргумент, результатом является массив с тем же числом элементов как аргумент Array, каждый элемент полученного массива, являющегося, чем результат был бы с отдельным аргументом.

Таким образом в Вашем первом примере

=IF({1,0,1}, 42, 99)

Вы получаете массив

{ IF(1, 42, 99), IF(0, 42, 99), IF(1, 42, 99)}

который выходит как

{ 42, 99, 42 }

В Вашем последнем примере

=IF(ISNA({1,2,3}), {1,2,3,4}, {5,6,7,8})

результат

{ IF(ISNA(1),1,5) , IF(ISNA(2),2,6) , IF(ISNA(3),3,7) ,IF(ISNA(),4,8) }

Первые три ISNAs возвращают false и четвертые сбои, таким образом, результат - то, что Вы получили. Я думаю, что единственная запутывающая вещь здесь могла состоять в том, где ошибочное значение.

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

2
ответ дан 09.01.2020, 03:39

Теги

Похожие вопросы