Проблема локализации в MS Excel для оператора "union" в формулах - PullRequest
0 голосов
/ 22 марта 2012

Я пытаюсь создать формулу Excel, которая сделает поиск в нескольких массивах, расположенных на разных листах. Поэтому я пытаюсь объединить все массивы в один и выполнить поиск с использованием оператора объединения для объединения массивов. Это будет выглядеть как

=SUMPRODUCT(Sheet0!A1:A10,Sheet1!A1:A10 ; array2 ...)

Не могу сказать, работает ли эта формула, потому что в моем окне Windows задана локаль FR_CA, в которой в качестве разделителя списка используется точка с запятой (по крайней мере, это мое лучшее предположение), а любое появление запятой приводит к появлению окна ошибки (недопустимая формула) .

Я попытался использовать именованные диапазоны для решения проблемы, в лучшем случае мои именованные диапазоны вернули # VALUE

  • Определение List0 как Лист0! A1: A10 и List1 как Лист1! A1: A10
  • А также попытался определить List как "= Sheet0! A1: A10, Sheet1! A1: A10" с запятой и точкой с запятой, добавив и удалив скобки

Примечание 1: Я стараюсь изо всех сил, чтобы НЕ использовать VBA Примечание 2: я даже пытался изменить предпочтение окна «разделитель списка» на запятую, без изменений

Так что любой может помочь с любым из 3 вопросов:

  • Посоветуйте мне саму формулу, если я могу использовать оператор объединения
  • Помогите мне обойти проблему локали: что такое оператор французского союза
  • Помогите мне изменить мой язык на то, что позволит мне использовать запятую

1 Ответ

2 голосов
/ 22 марта 2012

Оператор объединения не возвращает массив, он возвращает диапазон, состоящий из нескольких областей, и отдельные диапазоны должны находиться на одном листе.Символ оператора объединения такой же, как разделитель аргументов функции (т. Е. Запятая в английских или точка с запятой в европейских), и ссылки должны быть заключены в скобки, если они помещены в аргументы функции.Например, это возвращает сумму B1: B10:

=SUM(INDEX((Sheet1!A1:A10,Sheet1!B1:B10),,,2))

Для объединения диапазонов, состоящих из отдельных столбцов и массивов, вы можете использовать синтаксис: CHOOSE({1,2,...},Col1,Col2,...), в аргументах функции, например:

=SUMPRODUCT(--(CHOOSE({1,2},Sheet1!A1:A10,Sheet2!A1:A10)="abc"),
               CHOOSE({1,2},Sheet1!B1:B10,Sheet2!B1:B10))
...