В продолжение предыдущего вопроса о горизонтальных и вертикальных массивах у меня возник вопрос о соответствующих разделителях.
Определение проблемы:
Вот пример неправильного способа сравнения двух массивов:
{=SUMPRODUCT(--({"Apple","Pear"}={"Apple","Lemon","Pear"}))}
Правильный способ в случае использования кода страны на английском языке:
{=SUMPRODUCT(--({"Apple","Pear"}={"Apple";"Lemon";"Pear"}))}
В английской версии Excel (скорее всего, больше, чем просто на английском языке) эти разделители будут соответственно запятой ,
для горизонтальных массивов и точкой с запятой ;
для вертикальных. Об этом можно найти много информации в Интернете.
Работа на машине с голландским кодом страны в приложении, однако, это не совсем другая история. Это расстраивает, что мои разделители будут разными, соответственно ;
и \
. Будучи в состоянии довольно просто извлечь точку с запятой, оказалось сложно найти любую документацию по этим разделителям для международной версии.
Решение:
Незнание этих разделителей заранее затрудняет работу с этими формулами для любого пользователя в различных международных версиях приложения. Довольно простым решением будет использование TRANSPOSE()
:
{=SUMPRODUCT(--({"Apple";"Pear"}=TRANSPOSE({"Apple";"Lemon";"Pear"})))}
Проходя встроенную оценку, мы можем получить обратную косую черту как разделитель столбцов. Другой способ - использовать свойство Application.International и его xlColumnSeparator
и xlRowSeparator
.
Вопрос
Мы можем найти и даже переопределить xlDecimalSeparator
и xlThousandsSeparator
через Excel (Файл> Параметры> Дополнительно) или VBA (Application.DecimalSeparator = "-"
), но где мы можем найти:
- Место, где можно увидеть, какие
xlRowSeparator
иxlColumnSeparator
используются в вашем собственном приложении, кроме описанных мной обходных путей. Ищите интерфейс, похожий на тысячи и десятичный разделитель и/или официальную документацию MS.
Кроме того (не специально ищет это), есть:
- Место, где их можно переопределить, как десятичный разделитель и тысяча разделителей
- Если не через интерфейсы Excel, можем ли мы каким-то образом перебить это с помощью VBA?
Мне очень любопытно, есть ли официальная документация и/или может ли быть сделано вышеупомянутое.