У вас есть более простой или обобщенный подход к извлечению / форматированию ячейки Excel в формате B. Столбец А имеет случайные шаблоны, такие как показано в столбце А.

A                      B
16/06/2009            6/16/2009
11/6/2009             6/11/2009
29/10/2009 13:12:51   10/29/2009 13:12:51
3/12/2009 9:38        12/3/2009  9:38

Я попробовал это решение, но это не будет работать со вторым случаем.

B = MID($A1,4,2) & "/" & MID($A1,1,2) & "/" & MID($A1,7,4)

Кроме того, макросы не возможно в моем случае. Я ограничен родными функциями Excel. Благодарю.

РЕДАКТИРОВАТЬ 1: Я обновил вопрос, чтобы охватить новые шаблоны, которые я только что узнал из данных. Сожалею.

РЕДАКТИРОВАТЬ 2: Я нашел решение, см. Ответ № 2. Это была грубая сила, но она работает во всех случаях.

2 ответа2

1

Скажем, у нас в столбце А есть некоторые даты, которые на самом деле представляют собой текст в формате дд / мм / гггг.

В B1 введите:

=DATE(RIGHT(A1,4),TRIM(MID(SUBSTITUTE($A1,"/",REPT(" ",999)),1000,999)),LEFT(A1,FIND("/",A1)-1))

и скопировать вниз. Затем примените соответствующий формат к столбцу B:

Эта формула будет правильно обрабатывать даты в столбце A в следующих форматах:

  • д / м / год
  • дд / м / год
  • д / мм / гггг
  • дд / мм / гггг

EDIT # 1:

Если данные в столбце A являются истинными датами Excel, используйте это в B1:

=DATE(YEAR(A1),MONTH(A1),DAY(A1))
0

Спал на нем и взял несколько чашек кофе этим утром, и мне удалось выяснить это. его комбинация ваших входов и показаний у меня было.

Формула, представленная этими ячейками:

E2 = 27/06/2016 08:00:00
F2 = FIND("/",$E2) -> 3 the first /
G2 = FIND("/",$E2,4) -> 6 the second /
H2 = IFERROR(FIND(" ",$E2,4),0) -> 11 any presence of " " space
I2 = NUMBERVALUE(MID($E2,$F2+1,($G2-$F2)-1)) -> 6 month
J2 = NUMBERVALUE(MID($E2,1,$F2-1)) -> 27 day
K2 = NUMBERVALUE(MID($E2,$G2+1,4)) -> 2016 year
L2 = IF(H2=0,"N", "Y") -> Y time present
M2 = IF(H2=0,"00:00:00",RIGHT($E2,LEN($E2)-$H2)) -> 08:00:00 time
N2 = I2 &"/"& J2 &"/"& K2 &" "& M2 -> 6/27/2016 08:00:00 final results
  1. Из Excel я скопировал весь столбец и вставил в Блокнот.
  2. Формат даты (напр. E2), удалите все строки и отформатируйте как текст.
  3. Вставьте все строки из Блокнота в столбец E2. Это заставило колонку интерпретироваться как текст в Excel! FCK
  4. Затем у меня была формула, я разбил их, чтобы проверить, все ли работает для всех случаев.

Я поделился своими результатами здесь

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