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

Вход

Регистрация

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

 

= Мир MS Excel/Вытащить дату из номера заказ (формула) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Вытащить дату из номера заказ (формула) (Формулы/Formulas)
Вытащить дату из номера заказ (формула)
kepkst1551 Дата: Суббота, 11.06.2022, 16:57 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Добрый день.
Помогите пожалуйста с помощью формулы вытащить дату из номера заказа. Алгоритм создания номера заказа следующий:
Первая цифра- день в который был создан заказ может быть однозначной, если дата меньше 10 (1, 2, 3.... 8, 9) или двухзначной, если дата больше 9 (10, 11, 12.... 30, 31)
Вторая цифра, всегда двухзначная - номер месяца: 01, 02,03..... 10, 11, 12
Третья цифра всегда однозначная - номер текущего года (2 - 2022, 3 - 2023, 4 - 2024 и т.д.)
Четвёртая цифра может быть однозначной или двухзначной - номер заказа по порядку (1, 2, 3.....10, 11, 12 и т.д.). А также эта цифра может быть трёхзначной, но в таком случае она будет обязательно начинаться с 0 - это означает, что заказ был создан оператором вручную в процессе общения с заказчиком 01, 02, 03.....010, 011, 012, 013 и т.д.
Примеры:
10621 - дата заказа 01.06.22 (заказ номер 1)
10622 - дата заказа 01.06.22 (заказ номер 2)
106229 - дата заказа 01.06.22 (заказ номер 29)
106201 - дата заказа 01.06.22 (заказ номер 01)
106202 - дата заказа 01.06.22 (заказ номер 02)
1062029 - дата заказа 01.06.22 (заказ номер 029)

100621 - дата заказа 10.06.22 (заказ номер 1)
100622 - дата заказа 10.06.22 (заказ номер 2)
1006211 - дата заказа 10.06.22 (заказ номер 11)
1006201 - дата заказа 10.06.22 (заказ номер 01)
1006202 - дата заказа 10.06.22 (заказ номер 02)
10062012 - дата заказа 10.06.22 (заказ номер 012)
К сообщению приложен файл: 8157035.xlsx(9.2 Kb)


Сообщение отредактировал kepkst1551 - Суббота, 11.06.2022, 16:59
 
Ответить
СообщениеДобрый день.
Помогите пожалуйста с помощью формулы вытащить дату из номера заказа. Алгоритм создания номера заказа следующий:
Первая цифра- день в который был создан заказ может быть однозначной, если дата меньше 10 (1, 2, 3.... 8, 9) или двухзначной, если дата больше 9 (10, 11, 12.... 30, 31)
Вторая цифра, всегда двухзначная - номер месяца: 01, 02,03..... 10, 11, 12
Третья цифра всегда однозначная - номер текущего года (2 - 2022, 3 - 2023, 4 - 2024 и т.д.)
Четвёртая цифра может быть однозначной или двухзначной - номер заказа по порядку (1, 2, 3.....10, 11, 12 и т.д.). А также эта цифра может быть трёхзначной, но в таком случае она будет обязательно начинаться с 0 - это означает, что заказ был создан оператором вручную в процессе общения с заказчиком 01, 02, 03.....010, 011, 012, 013 и т.д.
Примеры:
10621 - дата заказа 01.06.22 (заказ номер 1)
10622 - дата заказа 01.06.22 (заказ номер 2)
106229 - дата заказа 01.06.22 (заказ номер 29)
106201 - дата заказа 01.06.22 (заказ номер 01)
106202 - дата заказа 01.06.22 (заказ номер 02)
1062029 - дата заказа 01.06.22 (заказ номер 029)

100621 - дата заказа 10.06.22 (заказ номер 1)
100622 - дата заказа 10.06.22 (заказ номер 2)
1006211 - дата заказа 10.06.22 (заказ номер 11)
1006201 - дата заказа 10.06.22 (заказ номер 01)
1006202 - дата заказа 10.06.22 (заказ номер 02)
10062012 - дата заказа 10.06.22 (заказ номер 012)

Автор - kepkst1551
Дата добавления - 11.06.2022 в 16:57
bigorq Дата: Суббота, 11.06.2022, 17:18 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 125
Репутация: 25 ±
Замечаний: 0% ±

Нет
Добрый
А как быть с 101221? Это 01.01.2022 или 10.12.2022
 
Ответить
СообщениеДобрый
А как быть с 101221? Это 01.01.2022 или 10.12.2022

Автор - bigorq
Дата добавления - 11.06.2022 в 17:18
kepkst1551 Дата: Суббота, 11.06.2022, 17:50 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

А как быть с 101221? Это 01.01.2022 или 10.12.2022


101221 - дата 01.01.22, заказ №21
Или в 12-том месяце это будет:
101221 - дата 10.12.22, заказ №1, но это будет другая книга за декабрь. Книги создаются на один месяц.

Месяц- вторая цифра и всегда двухзначная: 01, 02,03..... 10, 11, 12
(год обозначается одной цифрой. В этом году это неизменная 2, в следующем году это будет 3 и т.д. (в 2030м это будет 0, далее снова начиная с 1))

Очень замороченная кодировка.
Я говорю им: давайте сделаем дату всегда в одном формате: первые 6 цифр. Так нет, не хотят переделывать.


Сообщение отредактировал kepkst1551 - Суббота, 11.06.2022, 17:57
 
Ответить
Сообщение
А как быть с 101221? Это 01.01.2022 или 10.12.2022


101221 - дата 01.01.22, заказ №21
Или в 12-том месяце это будет:
101221 - дата 10.12.22, заказ №1, но это будет другая книга за декабрь. Книги создаются на один месяц.

Месяц- вторая цифра и всегда двухзначная: 01, 02,03..... 10, 11, 12
(год обозначается одной цифрой. В этом году это неизменная 2, в следующем году это будет 3 и т.д. (в 2030м это будет 0, далее снова начиная с 1))

Очень замороченная кодировка.
Я говорю им: давайте сделаем дату всегда в одном формате: первые 6 цифр. Так нет, не хотят переделывать.

Автор - kepkst1551
Дата добавления - 11.06.2022 в 17:50
bigorq Дата: Суббота, 11.06.2022, 18:11 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 125
Репутация: 25 ±
Замечаний: 0% ±

Нет
Я про то, что невозможно вычислить достоверно дату, по Вашей методике
 
Ответить
СообщениеЯ про то, что невозможно вычислить достоверно дату, по Вашей методике

Автор - bigorq
Дата добавления - 11.06.2022 в 18:11
kepkst1551 Дата: Суббота, 11.06.2022, 18:14 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Я про то, что невозможно вычислить достоверно дату, по Вашей методике

Эта ошибка появляется только в 2022 году. В 2023 и далее такого не будет. Надо попытаться.
 
Ответить
Сообщение
Я про то, что невозможно вычислить достоверно дату, по Вашей методике

Эта ошибка появляется только в 2022 году. В 2023 и далее такого не будет. Надо попытаться.

Автор - kepkst1551
Дата добавления - 11.06.2022 в 18:14
Pelena Дата: Суббота, 11.06.2022, 18:56 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 18555
Репутация: 4202 ±
Замечаний: ±

Excel 2016 & Mac Excel
Вариант
Код
=ЕСЛИОШИБКА(--(ПСТР(B3;1;1) & "-" &ПСТР(B3;2;2)&"-"&"2"&ПСТР(B3;4;1));--(ПСТР(B3;1;2) & "-" &ПСТР(B3;3;2)&"-"&"2"&ПСТР(B3;5;1)))
К сообщению приложен файл: 8224051.xlsx(9.8 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеВариант
Код
=ЕСЛИОШИБКА(--(ПСТР(B3;1;1) & "-" &ПСТР(B3;2;2)&"-"&"2"&ПСТР(B3;4;1));--(ПСТР(B3;1;2) & "-" &ПСТР(B3;3;2)&"-"&"2"&ПСТР(B3;5;1)))

Автор - Pelena
Дата добавления - 11.06.2022 в 18:56
kepkst1551 Дата: Суббота, 11.06.2022, 19:39 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

=ЕСЛИОШИБКА(--(ПСТР(B3;1;1) & "-" &ПСТР(B3;2;2)&"-"&"2"&ПСТР(B3;4;1));--(ПСТР(B3;1;2) & "-" &ПСТР(B3;3;2)&"-"&"2"&ПСТР(B3;5;1)))


Вот прям круто! Работает! Красиво!
 
Ответить
Сообщение
=ЕСЛИОШИБКА(--(ПСТР(B3;1;1) & "-" &ПСТР(B3;2;2)&"-"&"2"&ПСТР(B3;4;1));--(ПСТР(B3;1;2) & "-" &ПСТР(B3;3;2)&"-"&"2"&ПСТР(B3;5;1)))


Вот прям круто! Работает! Красиво!

Автор - kepkst1551
Дата добавления - 11.06.2022 в 19:39
scriptapplications Дата: Суббота, 11.06.2022, 20:46 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 59
Репутация: 9 ±
Замечаний: 0% ±

kepkst1551, в большинстве случаев (на всех приведённых данных работает) будет работать такая формула из условия, что если вторая и третья цифры кода представляют число от 1 до 12, то дата однозначная.
Формат ячейки должен быть "дата"
Если где-то на листе, например, в заголовках, указывается год или месяц, то формулу можно улучшить.
Код
=ЕСЛИ(И(ЗНАЧЕН(ПСТР(B3;2;2))>0;ЗНАЧЕН(ПСТР(B3;2;2))<13);ДАТА(ЗНАЧЕН("20"&ЕСЛИ(ЗНАЧЕН(ПСТР(B3;4;1))>=2;2;3)&ПСТР(B3;4;1));ЗНАЧЕН(ПСТР(B3;2;2));ЗНАЧЕН(ПСТР(B3;1;2)));ДАТА(ЗНАЧЕН("20"&ЕСЛИ(ЗНАЧЕН(ПСТР(B3;5;1))>=2;2;3)&ПСТР(B3;5;1));ЗНАЧЕН(ПСТР(B3;3;2));ЗНАЧЕН(ПСТР(B3;1;2))))

Сокращённый вариант:
Код
=ЕСЛИ(И(ПСТР(B3;2;2)>0;ПСТР(B3;2;2)<13);ДАТА("20"&ЕСЛИ(ЗНАЧЕН(ПСТР(B3;4;1))>=2;2;3)&ПСТР(B3;4;1);ПСТР(B3;2;2);ПСТР(B3;1;2));ДАТА("20"&ЕСЛИ(ЗНАЧЕН(ПСТР(B3;5;1))>=2;2;3)&ПСТР(B3;5;1);ПСТР(B3;3;2);ПСТР(B3;1;2)))

Но после 2031 её надо будет подправить.


Сообщение отредактировал scriptapplications - Суббота, 11.06.2022, 20:52
 
Ответить
Сообщениеkepkst1551, в большинстве случаев (на всех приведённых данных работает) будет работать такая формула из условия, что если вторая и третья цифры кода представляют число от 1 до 12, то дата однозначная.
Формат ячейки должен быть "дата"
Если где-то на листе, например, в заголовках, указывается год или месяц, то формулу можно улучшить.
Код
=ЕСЛИ(И(ЗНАЧЕН(ПСТР(B3;2;2))>0;ЗНАЧЕН(ПСТР(B3;2;2))<13);ДАТА(ЗНАЧЕН("20"&ЕСЛИ(ЗНАЧЕН(ПСТР(B3;4;1))>=2;2;3)&ПСТР(B3;4;1));ЗНАЧЕН(ПСТР(B3;2;2));ЗНАЧЕН(ПСТР(B3;1;2)));ДАТА(ЗНАЧЕН("20"&ЕСЛИ(ЗНАЧЕН(ПСТР(B3;5;1))>=2;2;3)&ПСТР(B3;5;1));ЗНАЧЕН(ПСТР(B3;3;2));ЗНАЧЕН(ПСТР(B3;1;2))))

Сокращённый вариант:
Код
=ЕСЛИ(И(ПСТР(B3;2;2)>0;ПСТР(B3;2;2)<13);ДАТА("20"&ЕСЛИ(ЗНАЧЕН(ПСТР(B3;4;1))>=2;2;3)&ПСТР(B3;4;1);ПСТР(B3;2;2);ПСТР(B3;1;2));ДАТА("20"&ЕСЛИ(ЗНАЧЕН(ПСТР(B3;5;1))>=2;2;3)&ПСТР(B3;5;1);ПСТР(B3;3;2);ПСТР(B3;1;2)))

Но после 2031 её надо будет подправить.

Автор - scriptapplications
Дата добавления - 11.06.2022 в 20:46
kepkst1551 Дата: Воскресенье, 12.06.2022, 06:43 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Цитата scriptapplications, 11.06.2022 в 20:46, в сообщении № 8 ()
будет работать такая формула

Хороший вариант. Благодарю.
 
Ответить
Сообщение
Цитата scriptapplications, 11.06.2022 в 20:46, в сообщении № 8 ()
будет работать такая формула

Хороший вариант. Благодарю.

Автор - kepkst1551
Дата добавления - 12.06.2022 в 06:43
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Вытащить дату из номера заказ (формула) (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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