Текстовая функция в Excel не форматирует год
У меня проблема с текстовой функцией в Excel (2007). Он не форматирует год, он просто указывает гггг, например, 2014.
Если у меня есть клетка с 23-7-2014
и используйте формулу =TEXT(A1,"dd-mm-yyyy")
я получил 23-7-yyyy
,
Мой компьютер настроен на использование формата дд-мм-гггг.
Я использую эту функцию в более крупной формуле, состоящей в основном из объединения нескольких столбцов в одной ячейке: ="reg"&C1533&"_"&D1533&"_"&E1533&"_"&F1533&"_"&TEXT(G1533,"mm-dd-yyyy")
Вот скриншот проблемы:
4 ответа
Я не уверен, что это правильный способ решить эту проблему, но это работает на моей машине с голландским языком.
В голландском y (для года) заменяется на j (для jaar).
TEXT(G1533, "mm-dd-jjjj")
Или... вы можете прибегнуть к этому:
CONCATENATE(TEXT(G1533, "mm-dd-"), YEAR(G1533))
Это связано с региональными настройками вашего компьютера. Вам нужно будет перейти к панели управления, а затем "Регион и язык", а затем установить параметры даты там, чтобы соответствовать дд-мм-гггг.
Простое решение, будь то непосредственное форматирование ячейки или использование , — это использовать код страны для языка, для которого вы знаете правильные коды форматирования.
Например, я нахожусь в США, имею американскую версию Excel и знаком с ее форматами кода даты. Поэтому я хотел бы использовать их и гарантировать, что они «выходят» независимо от чьей-либо версии Windows или Excel или страны, в которой они находятся, я бы сделал это следующим образом (скажем, для , но это было бы та же идея в пользовательском форматировании):
=TEXT(A1,[$-en-US]"dd-mm-yyyy")
Функция будет собирать значение вA1
, попросите Excel рассматривать это как дату, Excel скажет и скажет: «Хорошо, это круто» (т. е. значение, скажем, 43857, а не «лошадь»), потому что это положительное число, которое является требованием для всего, что нужно обрабатывать. как дату, и позвольте функции перейти к ее отображению как дату предписанным способом. Вместо того, чтобы давать#ERROR!
как и для «лошади» или -6.
Затем функция прочитает строку форматирования и увидит код языка. Затем он удалял обычный набор кодов форматирования, загружаемый при запуске, и загружал коды форматирования для английского («en») и, в частности, американского английского («US»). Остальная часть строки использует коды из этого набора, поэтому она правильно их интерпретирует и отправляет соответствующую строку обратно вTEXT()
для его отображения в ячейке (и перехода к другим формулам, если таковые существуют).
У меня нет возможности проверить следующее, но я предполагаю, что если бы кто-то использовал формат, отображающий названия дней недели или месяцев, они были бы из одного и того же языкового набора. Другими словами, Excel не будет думать, что, даже если вы указали страну и язык, вам все равно нужны, скажем, голландские или конголезские названия месяцев. Так что подобные вещи все равно нужно будет решить, но это тоже будет легко исправить, просто включив, скажем, простой поиск, который можно было бы добавить, хотя было бы «забавно» настроить таблицу поиска для каждого языка, который вы хотите использовать...
Однако основная проблема, которая возникает с этой проблемой в целом, очень и очень легко решается с помощью кодов стран. Теперь они даже не являются сложными или загадочными, поскольку синтаксис [$-409] был заменен такими вещами, как [$-en-us] и [$-he-IL] и так далее.
Однако я хотел бы отметить, что если единственной трудностью является годовая часть, то самое простое исправление — это решение изuser353435
: просто используйте «e» для обозначения года строки форматирования. Простейшие руки вниз. Больше чем это? Просто сделайте вышеперечисленное.