Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2009, 11:23   #1
axell_pnz
 
Регистрация: 11.11.2009
Сообщений: 7
По умолчанию Как преобразовать "17 лет 11 месяцев 9 дней" в месяца и дни???

сабж! Помогите решить данный затык!
axell_pnz вне форума Ответить с цитированием
Старый 11.11.2009, 11:33   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Исходные данные в каком виде? Текстовая строка?

Надо сделать формулой, или макросом?
Куда поместить результат?
Много таких строк обрабатывать, или только одну?
EducatedFool вне форума Ответить с цитированием
Старый 11.11.2009, 11:45   #3
axell_pnz
 
Регистрация: 11.11.2009
Сообщений: 7
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Исходные данные в каком виде? Текстовая строка?

Надо сделать формулой, или макросом?
Куда поместить результат?
Много таких строк обрабатывать, или только одну?
Да извините что недал такую информацию
Данные в таком виде как в заголовке темы "26 лет 5 месяцев 24 дня" тип данных строка. Чем делать даже и не знаю, думаю что чем удобнее.
Результат желательно поместить с следующей колонки, строк много около 800!
axell_pnz вне форума Ответить с цитированием
Старый 11.11.2009, 11:47   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

И еще. В какой период были эти 17 лет и т.д. Я имею ввиду, что нужно еще учитывать високосные года.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 11.11.2009, 11:51   #5
axell_pnz
 
Регистрация: 11.11.2009
Сообщений: 7
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
И еще. В какой период были эти 17 лет и т.д. Я имею ввиду, что нужно еще учитывать високосные года.
не стоит нужно просто года перевести в месяца и а дни так остануться потому что выгрузка уже учитывала високосные года, запись хочется получить в виде МММ/ДД
axell_pnz вне форума Ответить с цитированием
Старый 11.11.2009, 11:59   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Можно использовать простейшую пользовательскую функцию:
Код:
Function Число(ByRef cell As Range, Позиция As Integer) As Long
    Число = Val(Split(cell.Text, " ")(Позиция * 2 - 2))
End Function
Формулы будут иметь такой вид:
Код:
  Ячейка: B1      Формула  (стиль A1):   =Число($A1;1)
                  Формула  (стиль R1C1): =Число(RC1;1)

  Ячейка: C1      Формула  (стиль A1):   =Число($A1;2)
                  Формула  (стиль R1C1): =Число(RC1;2)

  Ячейка: D1      Формула  (стиль A1):   =Число($A1;3)
                  Формула  (стиль R1C1): =Число(RC1;3)
Пример файла с формулами:

EducatedFool вне форума Ответить с цитированием
Старый 11.11.2009, 12:04   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Немного неправильно понял задание.

Вот так будет верно:



Формулы:

Код:
  Ячейка: B1      Формула  (стиль A1):   =КоличествоДней($A1)
                  Формула  (стиль R1C1): =КоличествоДней(RC1)
Функция:

Код:
Function КоличествоДней(ByRef cell As Range) As String
    m = Val(Split(cell.Text, " ")(0)) * 12 + Val(Split(cell.Text, " ")(2))
    d = Val(Split(cell.Text, " ")(4))
    КоличествоДней = m & "/" & d
End Function


Если обязателен формат вывода МММ/ДД, то можно использовать такой вариант:
Код:
Function КоличествоДней(ByRef cell As Range) As String
    m = Val(Split(cell.Text, " ")(0)) * 12 + Val(Split(cell.Text, " ")(2))
    d = Val(Split(cell.Text, " ")(4))
    КоличествоДней = Format(m, "000") & "/" & Format(d, "00")
End Function

Последний раз редактировалось EducatedFool; 11.11.2009 в 12:09.
EducatedFool вне форума Ответить с цитированием
Старый 11.11.2009, 12:20   #8
axell_pnz
 
Регистрация: 11.11.2009
Сообщений: 7
По умолчанию

Спасибо тебе большое все получилось в лучшем виде!!!!
axell_pnz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Зависимость чисел дней месяца от месяца valerij Microsoft Office Excel 10 14.11.2008 11:01
Как преобразовать строку типа "яяя ччч" в %D1%D1%D1%20%DE%DE%DE kkkggg PHP 2 12.09.2007 13:33