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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.07.2009, 16:12   #1
rafael27
Новичок
Джуниор
 
Регистрация: 27.07.2009
Сообщений: 4
По умолчанию Очередность значений

Добрый день!
Нужна помощь в создании последовательности значений, с таким условием, чтобы к заданному числу добавлялось 11, а если последнее число 6 или больше оно округлялось.
пример:
444-4900 0902 ---- прибавляется 11
444-4900 0913 ---- прибавляется 11
444-4900 0924 ---- прибавляется 11
444-4900 0935 ---- прибавляется 11, но последнее число 6, так что округляется
444-4900 0950 ---- прибавляется 11
444-4900 0961 ---- и т.д
444-4900 0972
444-4900 0983
444-4900 0994
rafael27 вне форума Ответить с цитированием
Старый 27.07.2009, 16:15   #2
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от rafael27 Посмотреть сообщение
444-4900 0902 ---- прибавляется 11
Здорово, все понятно.

Цитата:
Сообщение от rafael27 Посмотреть сообщение
444-4900 0935 ---- прибавляется 11, но последнее число 6, так что округляется
А здесь? Куда округляется? До какого значения? До верхнего или нижнего?
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 27.07.2009, 16:18   #3
rafael27
Новичок
Джуниор
 
Регистрация: 27.07.2009
Сообщений: 4
По умолчанию

до нижнего значения. т.е. вместо ...0946 оно должно изменится на ...0950
rafael27 вне форума Ответить с цитированием
Старый 27.07.2009, 16:35   #4
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от rafael27 Посмотреть сообщение
до нижнего значения. т.е. вместо ...0946 оно должно изменится на ...0950
Порадовало. До нижнего значения: с 46 до 50
Я так понял надо все-таки вверх
Код:
=ЕСЛИ(ЗНАЧЕН(ПРАВСИМВ(ПРАВСИМВ(A1;4)+11;1))<6;ЛЕВСИМВ(A1;9)&ТЕКСТ(ПРАВСИМВ(A1;4)+11;"0000");ЛЕВСИМВ(A1;9)&ТЕКСТ(ОКРВВЕРХ(ПРАВСИМВ(A1;4)+11;10);"0000"))
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 27.07.2009, 16:56   #5
rafael27
Новичок
Джуниор
 
Регистрация: 27.07.2009
Сообщений: 4
По умолчанию

Если не затруднит, можете выразить эту формулу на английском? заранее огромное спасибо!
rafael27 вне форума Ответить с цитированием
Старый 27.07.2009, 16:58   #6
TAVulator
Программист
Форумчанин
 
Аватар для TAVulator
 
Регистрация: 23.07.2009
Сообщений: 101
По умолчанию

эх неуспел... но все-равно вот мой вариант:

Код:
=ЕСЛИ(ЗНАЧЕН(ПРАВСИМВ(ПРАВСИМВ(A1;4)+11))<6;ТЕКСТ(ЛЕВСИМВ(A1;10);"000")&ПРАВСИМВ(A1;4)+11;ТЕКСТ(ЛЕВСИМВ(A1;10);"000")&ОКРВВЕРХ(ПРАВСИМВ(A1;4)+11;10))
Если вы верите, что можете или не можете
сделать что-то, вы правы в обоих случаях.

______________________________(С) Г.Форд

Последний раз редактировалось TAVulator; 27.07.2009 в 18:12.
TAVulator вне форума Ответить с цитированием
Старый 27.07.2009, 17:01   #7
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Наверное, так
Код:
=IF(VALUE(RIGHT(RIGHT(A1;4)+11;1))<6;LEFT(A1;9)&TEXT(RIGHT(A1;4)+11;"0000");LEFT(A1;9)&TEXT(CEILING(RIGHT(A1;4)+11;10);"0000"))
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 27.07.2009, 17:05   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

предлагаю вариант немного короче (раза в 3-4, пишем в А2):
Код:
=A1+11+ЕСЛИ(ПРАВСИМВ(ТЕКСТ(A1;"#");1)="5";4;)
=A1+11+IF(RIGHT(TEXT(A1;"#");1)="5";4;)
насчет точек с запятой не уверен, возможно, в анг.варианте нужны запятые
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 27.07.2009 в 17:12.
IgorGO вне форума Ответить с цитированием
Старый 27.07.2009, 18:18   #9
rafael27
Новичок
Джуниор
 
Регистрация: 27.07.2009
Сообщений: 4
По умолчанию

огромное спасибо

Последний раз редактировалось rafael27; 27.07.2009 в 18:23.
rafael27 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
20 значений функции. ByFly Паскаль, Turbo Pascal, PascalABC.NET 3 13.01.2009 12:56
Извлечение значений из БД? ITM Microsoft Office Excel 4 10.01.2009 23:40
Перевод значений DeDoK Общие вопросы Delphi 3 19.05.2008 08:39