Страницы: 1
RSS
Как сделать формат дат ДД ММ ГГ и dd mm yy чтоб формат дат читался на всех компах.
 
Подскажите столкнулся с такой проблемой. На моем компе при введении формулы с Датой ;
Код
=Текст("Ячейка";"ДД ММ ГГ") 

у меня воспринимает дату нормально. На некоторых других компах в настройках выставлен формат "dd mm yy" и мои формулы в формат даты не переводит. Возможно ли как то при помощи формулы сделать так, чтобы все компы с настройками  русским и англ.форматами. Могли воспринимать мою формулу.
 
Тут описано одно из решений:
по-агглицки.
Кому решение нужно - тот пример и рисует.
 
Код
=ПРАВСИМВ("0" & ДЕНЬ(A1); 2) & " " & ПРАВСИМВ("0" & МЕСЯЦ(A1); 2) & " " & ПРАВСИМВ(ГОД(A1); 2)
Владимир
 
Сравнить текст(1;"d") с "d" и при равенстве использовать дд, а нет то dd.

=TEXT(TODAY();IF(TEXT(1;"d")="d";"ДД ММ ГГ";"DD MM YY"))
Изменено: БМВ - 17.03.2020 19:39:22
По вопросам из тем форума, личку не читаю.
 
Здравствуйте, Михаил! А датчане и разные прочие шведы?
Владимир
 
Добрый вечер, коллеги.
А как поведёт себя под разными локалями такой вариант?
Код
=ТЕКСТ(СЕГОДНЯ();"[$-x-sysdate]")

Правда, это ещё и от версии Excel может зависеть.
 
Цитата
sokol92 написал:
А датчане и разные прочие шведы?
а зачем нам эти неудачники?!!! :-)

Цитата
Андрей VG написал:
Правда, это ещё и от версии Excel может зависеть.
да и ранее 2016 это [$-F800], но формат то вывода будет отличен от требуемого
17 марта 2020 г.
По вопросам из тем форума, личку не читаю.
 
Здравствуйте, Андрей!
В последних версиях выдаст дату в полном формате согласно региональным настройкам, например (Windows-1252):
Цитата
Tuesday, March 17, 2020
Старые версии (например, 2007) с этим форматом незнакомы. В результате будет пустой текст.
Изменено: sokol92 - 17.03.2020 22:59:01
Владимир
 
2013 - пусто.
 
Юрий, спасибо за уточнение. Как и написал Михаил, подобные форматы появились, начиная с версии 2016.
По причинам, указанным в #1, мы вообще не используем функцию ТЕКСТ (TEXT) для дат. Кстати, нимфы, туды их в качель OO/LO не стали локализовывать символы формата, и правильно сделали!
Изменено: sokol92 - 17.03.2020 20:10:15
Владимир
 
Коллеги, большое спасибо за исследование.
Цитата
БМВ написал:
отличен от требуемого
нам бы хоть ужиком, хоть ёжиком - лишь хоть что-нибудь было :)
 
ну без макросов тут не обойтись, если учесть всякие ÅÅÅÅ-MM-DD tt:mm
можно использовать где-то в спец ячейке формат даты и или макрофункцию через имена =GET.CELL(7;Sheet1!$A$1)
или sheet1.Range("a1").NumberFormatLocal. разобрать результат не сложно и уже это использовать в остальных формулах.
Изменено: БМВ - 17.03.2020 22:59:30
По вопросам из тем форума, личку не читаю.
 
Михаил, если макросы разрешены, то проще всего написать прокси-функцию (UDF)  :)

Код
Function VBAFormat(Expression, Format, _ 
                   Optional ByVal FirstDayOfWeek As VbDayOfWeek = vbMonday, _
                   Optional ByVal FirstWeekOfYear = vbFirstJan1)
  VBAFormat = VBA.Format(Expression, Format, FirstDayOfWeek, FirstWeekOfYear)
End Function


и использовать в полном объеме нелокализованные символы форматирования.
Изменено: sokol92 - 18.03.2020 12:06:14
Владимир
 
Цитата
DemonAMT написал: столкнулся с такой проблемой... с Датой
Нет там даты, сама функция кричит открытым текстом: "здесь ТЕКСТ!" :)
 
Цитата
sokol92 написал:
то проще всего написать прокси-функцию (UDF)
не ну в 10 строк уложился, но все равно буковок много .   :D
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх