Страницы: 1
RSS
На основе текстового описания периода посчитать кол-во месяцев
 
Добрый день, уважаемые форумчане!
Ищу помощи в решении интересной задачи. У меня есть ячейки с текстом:
March 2015 – Present (1 year 9 months)
May 2010 – Present (6 years 7 months)
2008 – Present (8 years)
По каждой ячейки мне нужно посчитать кол-во месяцев, к примеру по первому примеру 1 год = 12 месяцев + 9 месяцев = 21 месяц. Требуемый результат 21
Таких ячеек больше тысячи. Ищем помощи в автоматизации (можно частичной) процесса подсчета кол-ва месяцев  
 
Пример с изначальными данными прикрепите.
По описанию понятно, что необходимо. Но конкретика никогда не повредит. Да и правила требуют.
Изменено: heso - 06.12.2016 13:14:01
 
Вот небольшой пример
 
Вводить как формулу массива:
=СУММ(ЕСЛИ(ЕЧИСЛО(ПОИСК({"year";"mont"};A2));ПОДСТАВИТЬ(ПСТР(A2;ПОИСК({"year";"mont"};A2)-{3;2};2);"(";""))*{12;1})
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Мой все таки спотыкается в мусорку его у Владимира считает лучше  
Изменено: Сергей - 06.12.2016 13:36:57 (косяки)
Лень двигатель прогресса, доказано!!!
 
Владимир, проверил ваше решение, почти все переводит правильно. Кроме позиций с месяцам 10,11,12
January   2012 – Present (4 years 11 months)
Отклонение ровно на 10 меньше
Изменено: l_EX - 06.12.2016 13:36:49
 
Сергей, да проверил и ваш, не работает в случаях когда только год прописан, но в целом тоже не плохая идея.
сейчас пробуем подправить решение Владимира, что бы срабатывало с двухзначными месяцами....
 
-{3;2}
Замените это на просто -3
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Спасибо Владимир! Уже сами сообразили ;)
Вы очень нам помогли! Спасибо вам за ваши знания!
Надеюсь что еще кому-то пригодиться эта тема
 
Немассивная:
=СУММ(ПОДСТАВИТЬ(ПСТР(A2&"0";ПОИСК({"year";"mon"};A2&{"000year";"000mon"})-3;3);"(";)*{12;1})
 
vikttur, а можете немного объяснить работу вашей формулы? если разбить на куски, то получается что она выдает только год...
 
Смотря как разбивать на куски )
{} - между ними масив констант.
=СУММ({1;2}*{3;4})=СУММ({3;8})=11
Доп. информация. Памятка )
В формуле такого нет, но нужно учитывать направление массива:
=СУММ({1:2}*{3;4})=СУММ({3;4:6;8})=21


По формуле.
С помощью поиска  "year" в A2&"000year" находим количество лет и умножаем на 12 (пусть это будет л1)
С помощью поиска "mon" в A2&"000mon" находим количество месяцев и умножаем на 1 (пусть это будет м1)
Суммируем:
=СУММ({л1;м1})
 
Теперь в целом все понятно. Спасибо  
Страницы: 1
Наверх