Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Локализация и как с ней бороться - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Локализация и как с ней бороться (Формулы/Formulas)
Локализация и как с ней бороться
bmv98rus Дата: Пятница, 06.01.2017, 14:30 | Сообщение № 1
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Нашел только эту тему, но там нет ответа.

Собственно вопрос в разнице использования некоторых аргументов в функциях, таких как
Код
=text(A1;"DD.MM.YYYY")
Как добится универасльности? Сейчас или в спец ячейке или прям в нужном месте использую например так.
Код
=if(text(1;"DD")="DD";"ДД.ММ.ГГГГ";"DD.MM.YYYY")
Может есть более штатный метод? Собственно это полезно и для совместимости с open/libre, где синтаксис не зависит от локализации интервейса.


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Пятница, 06.01.2017, 15:53
 
Ответить
СообщениеНашел только эту тему, но там нет ответа.

Собственно вопрос в разнице использования некоторых аргументов в функциях, таких как
Код
=text(A1;"DD.MM.YYYY")
Как добится универасльности? Сейчас или в спец ячейке или прям в нужном месте использую например так.
Код
=if(text(1;"DD")="DD";"ДД.ММ.ГГГГ";"DD.MM.YYYY")
Может есть более штатный метод? Собственно это полезно и для совместимости с open/libre, где синтаксис не зависит от локализации интервейса.

Автор - bmv98rus
Дата добавления - 06.01.2017 в 14:30
Nic70y Дата: Пятница, 06.01.2017, 15:28 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8710
Репутация: 2261 ±
Замечаний: 0% ±

Excel 2010
Код
=ПРАВБ(0&ДЕНЬ(A1);2)&"."&ПРАВБ(0&МЕСЯЦ(A1);2)&"."&ГОД(A1)
это не решение проблемы - просто вариант


ЮMoney 41001841029809
 
Ответить
Сообщение
Код
=ПРАВБ(0&ДЕНЬ(A1);2)&"."&ПРАВБ(0&МЕСЯЦ(A1);2)&"."&ГОД(A1)
это не решение проблемы - просто вариант

Автор - Nic70y
Дата добавления - 06.01.2017 в 15:28
bmv98rus Дата: Пятница, 06.01.2017, 15:59 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Nic70y,

а если надо "DDD"/"ДДД" для дня недели, то выбор из массива - составлять текстом результат не совсем хорошая идея. м VBA там хоть раделено на стандартную и локализованную версию формул и форматов.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеNic70y,

а если надо "DDD"/"ДДД" для дня недели, то выбор из массива - составлять текстом результат не совсем хорошая идея. м VBA там хоть раделено на стандартную и локализованную версию формул и форматов.

Автор - bmv98rus
Дата добавления - 06.01.2017 в 15:59
Nic70y Дата: Пятница, 06.01.2017, 16:21 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 8710
Репутация: 2261 ±
Замечаний: 0% ±

Excel 2010
под любую задачу можно подобрать формулу.
не совсем хорошая идея
почему? по мне так норм.


ЮMoney 41001841029809
 
Ответить
Сообщениепод любую задачу можно подобрать формулу.
не совсем хорошая идея
почему? по мне так норм.

Автор - Nic70y
Дата добавления - 06.01.2017 в 16:21
bmv98rus Дата: Пятница, 06.01.2017, 16:44 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Nic70y,
естественно. можно, только вот выбор из масива надо с учетом локализации делать Ведь не у всех понедельником понедельник называют :-) и хорошо если языков 2, а если больше?. Вопрос для меня открыт.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеNic70y,
естественно. можно, только вот выбор из масива надо с учетом локализации делать Ведь не у всех понедельником понедельник называют :-) и хорошо если языков 2, а если больше?. Вопрос для меня открыт.

Автор - bmv98rus
Дата добавления - 06.01.2017 в 16:44
Gustav Дата: Суббота, 07.01.2017, 02:27 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2703
Репутация: 1123 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Сейчас или в спец ячейке или прям в нужном месте использую например так.
=if(text(1;"DD")="DD";"ДД.ММ.ГГГГ";"DD.MM.YYYY")
Может есть более штатный метод?

А что, вполне нормальный способ. Сам поступаю аналогично: http://www.excelworld.ru/forum/6-24041-188729-16-1465305111

И можно сократиться до одной буковки d и вместо 1 использовать 0, который можно вообще не указывать:
Код
=ЕСЛИ(ТЕКСТ(;"d")="d"; "русская раскладка"; "латинская раскладка")


Наконец, можно условие засунуть в имя, которое по Ctrl+F3, например, rus c такой формулой в поле "Диапазон":
Код
=ТЕКСТ(;"d")="d"

И далее комфортно и наглядно использовать это имя в формулах на листе:
Код
=ТЕКСТ(A1; ЕСЛИ(rus; "ДД.ММ.ГГГГ"; "dd.mm.yyyy"))


Или вынести в имя вообще весь шаблон даты, например, datFormat:
Код
=ЕСЛИ(ТЕКСТ(;"d")="d"; "ДД.ММ.ГГГГ"; "dd.mm.yyyy")

И далее на листе:
Код
=ТЕКСТ(A1; datFormat)


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
Сейчас или в спец ячейке или прям в нужном месте использую например так.
=if(text(1;"DD")="DD";"ДД.ММ.ГГГГ";"DD.MM.YYYY")
Может есть более штатный метод?

А что, вполне нормальный способ. Сам поступаю аналогично: http://www.excelworld.ru/forum/6-24041-188729-16-1465305111

И можно сократиться до одной буковки d и вместо 1 использовать 0, который можно вообще не указывать:
Код
=ЕСЛИ(ТЕКСТ(;"d")="d"; "русская раскладка"; "латинская раскладка")


Наконец, можно условие засунуть в имя, которое по Ctrl+F3, например, rus c такой формулой в поле "Диапазон":
Код
=ТЕКСТ(;"d")="d"

И далее комфортно и наглядно использовать это имя в формулах на листе:
Код
=ТЕКСТ(A1; ЕСЛИ(rus; "ДД.ММ.ГГГГ"; "dd.mm.yyyy"))


Или вынести в имя вообще весь шаблон даты, например, datFormat:
Код
=ЕСЛИ(ТЕКСТ(;"d")="d"; "ДД.ММ.ГГГГ"; "dd.mm.yyyy")

И далее на листе:
Код
=ТЕКСТ(A1; datFormat)

Автор - Gustav
Дата добавления - 07.01.2017 в 02:27
krosav4ig Дата: Суббота, 07.01.2017, 06:04 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
как вариант, можно в диспетчер имен воткнуть
Код
Г    =ИНДЕКС(ПОЛУЧИТЬ.РАБОЧЕЕ.ПРОСТРАНСТВО(37);19)
Код
Д    =ИНДЕКС(ПОЛУЧИТЬ.РАБОЧЕЕ.ПРОСТРАНСТВО(37);21)
Код
М    =ИНДЕКС(ПОЛУЧИТЬ.РАБОЧЕЕ.ПРОСТРАНСТВО(37);20)
а в формулу такую кракозябру
Код
=Д&Д&"."&М&М&"."&Г&Г&Г&Г


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 07.01.2017, 06:05
 
Ответить
Сообщениекак вариант, можно в диспетчер имен воткнуть
Код
Г    =ИНДЕКС(ПОЛУЧИТЬ.РАБОЧЕЕ.ПРОСТРАНСТВО(37);19)
Код
Д    =ИНДЕКС(ПОЛУЧИТЬ.РАБОЧЕЕ.ПРОСТРАНСТВО(37);21)
Код
М    =ИНДЕКС(ПОЛУЧИТЬ.РАБОЧЕЕ.ПРОСТРАНСТВО(37);20)
а в формулу такую кракозябру
Код
=Д&Д&"."&М&М&"."&Г&Г&Г&Г

Автор - krosav4ig
Дата добавления - 07.01.2017 в 06:04
Nic70y Дата: Суббота, 07.01.2017, 07:57 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 8710
Репутация: 2261 ±
Замечаний: 0% ±

Excel 2010
в диспетчер имен
ну это уже типамакросы,
а вопрос, как я понял о чистоформулах,
хотя прикольно


ЮMoney 41001841029809
 
Ответить
Сообщение
в диспетчер имен
ну это уже типамакросы,
а вопрос, как я понял о чистоформулах,
хотя прикольно

Автор - Nic70y
Дата добавления - 07.01.2017 в 07:57
bmv98rus Дата: Суббота, 07.01.2017, 09:34 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Если скрипты есть, то можно конечно вот так
На служебном листе форматируешь ячейки как надо.
[vba]
Код
Function GetFormatLocal(MyCell As Range) As String
    GetFormatLocal = MyCell.NumberFormatLocal
End Function

Function GetFormat(MyCell As Range) As String
    GetFormat = MyCell.NumberFormat
End Function
[/vba] ну и натравив на ячейки нужные получить в результате то что нужно.
Но как правильно отмечено, хочется обойтись только функциями листа.

К слову , что характерно вот это
Код
=ЯЧЕЙКА("address";A1)
работает не зависимо от языка интерфейса , а это
Код
=ЯЧЕЙКА("адрес";A1)
только в русском.


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Суббота, 07.01.2017, 09:36
 
Ответить
СообщениеЕсли скрипты есть, то можно конечно вот так
На служебном листе форматируешь ячейки как надо.
[vba]
Код
Function GetFormatLocal(MyCell As Range) As String
    GetFormatLocal = MyCell.NumberFormatLocal
End Function

Function GetFormat(MyCell As Range) As String
    GetFormat = MyCell.NumberFormat
End Function
[/vba] ну и натравив на ячейки нужные получить в результате то что нужно.
Но как правильно отмечено, хочется обойтись только функциями листа.

К слову , что характерно вот это
Код
=ЯЧЕЙКА("address";A1)
работает не зависимо от языка интерфейса , а это
Код
=ЯЧЕЙКА("адрес";A1)
только в русском.

Автор - bmv98rus
Дата добавления - 07.01.2017 в 09:34
Pelena Дата: Суббота, 07.01.2017, 11:09 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 19167
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
Может, не совсем по теме, но
К слову

независимо от языка интерфейса работает также такой формат даты [$-F800]
Например, формула
Код
=ТЕКСТ(A1;"[$-F800]")

вернёт длинный формат даты в соответствии с системными настройками


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеМожет, не совсем по теме, но
К слову

независимо от языка интерфейса работает также такой формат даты [$-F800]
Например, формула
Код
=ТЕКСТ(A1;"[$-F800]")

вернёт длинный формат даты в соответствии с системными настройками

Автор - Pelena
Дата добавления - 07.01.2017 в 11:09
bmv98rus Дата: Суббота, 07.01.2017, 13:54 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Pelena,

[$-F800]
интересно тоже. Есть ли где описание этаких скрытых от людского глаза форматов?


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеPelena,

[$-F800]
интересно тоже. Есть ли где описание этаких скрытых от людского глаза форматов?

Автор - bmv98rus
Дата добавления - 07.01.2017 в 13:54
Pelena Дата: Суббота, 07.01.2017, 14:21 | Сообщение № 12
Группа: Админы
Ранг: Местный житель
Сообщений: 19167
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
Я перелопатила довольно много материала, когда писала статью про Пользовательский формат. В частности в ней есть и про этот формат


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЯ перелопатила довольно много материала, когда писала статью про Пользовательский формат. В частности в ней есть и про этот формат

Автор - Pelena
Дата добавления - 07.01.2017 в 14:21
bmv98rus Дата: Суббота, 07.01.2017, 15:12 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Pelena,

а "на русском языке одним из таких кодов является [$-FC19], на украинском [$-FC22], на белорусском [$-FC23]." сами или от куда вычитали. Я просто первым делом вычел из FC19 F800 и получил привычные 1049 в десятично, ну и 1058 ... соотвтевенно . Это я к тому что попробую копнуть в этом направлении.


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Суббота, 07.01.2017, 15:21
 
Ответить
СообщениеPelena,

а "на русском языке одним из таких кодов является [$-FC19], на украинском [$-FC22], на белорусском [$-FC23]." сами или от куда вычитали. Я просто первым делом вычел из FC19 F800 и получил привычные 1049 в десятично, ну и 1058 ... соотвтевенно . Это я к тому что попробую копнуть в этом направлении.

Автор - bmv98rus
Дата добавления - 07.01.2017 в 15:12
Pelena Дата: Суббота, 07.01.2017, 15:55 | Сообщение № 14
Группа: Админы
Ранг: Местный житель
Сообщений: 19167
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
вычитала на sql.ru
http://www.sql.ru/forum....2070005
там файлик есть с кодами, посмотрите


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщениевычитала на sql.ru
http://www.sql.ru/forum....2070005
там файлик есть с кодами, посмотрите

Автор - Pelena
Дата добавления - 07.01.2017 в 15:55
bmv98rus Дата: Понедельник, 11.06.2018, 13:48 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Тут случайно наткнулся https://msdn.microsoft.com/en-us/library/mt474322(v=office.12).aspx
Ну это конечно можно выяснить и так, посмотрев через мастер форматирования, но как то понимать что делаешь лучше чем просто копировать.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеТут случайно наткнулся https://msdn.microsoft.com/en-us/library/mt474322(v=office.12).aspx
Ну это конечно можно выяснить и так, посмотрев через мастер форматирования, но как то понимать что делаешь лучше чем просто копировать.

Автор - bmv98rus
Дата добавления - 11.06.2018 в 13:48
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Локализация и как с ней бороться (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!