Я пишу этот вопрос после прочтения того, как использовать DATEVALUE с различными настройками языка без изменения настроек системы, не решило мою проблему.

Речь идет о чтении правильного месяца из текста, созданного в другой локали. Например, даты приходят из США, и я использую GE локаль. Тогда месяцы немного отличаются:

США месяцев январь, февраль, март, апрель, май, июнь, июль, август, сентябрь, октябрь, ноябрь, DEC

GE месяцев январь, февраль, мрз, апрель, май, июнь, июль, август, сентябрь, окт, ноя, дец

Я видел решение написать другую локаль, используя функцию TEXT, но мне интересно, каков эффективный способ сделать это сейчас. (Я считаю создание таблицы или массива последней инстанцией ;-)).

Спасибо за ваши подсказки! +Daniel+

1 ответ1

0

..используя функцию TEXT, но мне интересно, что является эффективным способом ..

Эффективен в плане?... Я не уверен, что это проще или сложнее .. Я думаю, что простой относительный. Я придерживаюсь того, что метод эффективен, когда мы верим в него (и понимаем его). ИМХО, это будет более хлопотно, когда мы добавим сомнение (в методе). (:

Предполагая, что исходный текст находится в A1, выполните:

=DATE(MID(A1,8,4),CHOOSE(MATCH(MID(A1,4,3),{"JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"},0),1,2,3,4,5,6,7,8,9,10,11,12),MID(A1,1,2))+TIME(MID(A1,13,2),MID(A1,16,2),0)

Идея:

  1. используйте MID(), чтобы получить значения года / месяца / дня / чч / сс (число и текст)
  2. используйте select () n match (), чтобы "конвертировать" месяц.
  3. используйте date () и time (), чтобы "преобразовать" в excel

Надеюсь, поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .