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

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

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

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

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

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

Добрый день.
Подскажите, такой вопрос:
Есть столбец с числами.
Как разделить эти числа следующим образом: в следующем столбце число до запятой, в другом после запятой?
Заранее спасибо.
msser вне форума Ответить с цитированием
Старый 22.10.2009, 10:34   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
  Ячейка: B1      Формула  (стиль A1):   =ЦЕЛОЕ(A1)
                  Формула  (стиль R1C1): =ЦЕЛОЕ(RC[-1])

  Ячейка: C1      Формула  (стиль A1):   =A1-B1
                  Формула  (стиль R1C1): =RC[-2]-RC[-1]


Вот ещё вариант:
Код:
  Ячейка: B1      Формула  (стиль A1):   =ЕСЛИ(ЕОШ(НАЙТИ(",";A1));A1;ПСТР(A1;1;НАЙТИ(",";A1)-1))
                  Формула  (стиль R1C1): =ЕСЛИ(ЕОШ(НАЙТИ(",";RC[-1]));RC[-1];ПСТР(RC[-1];1;НАЙТИ(",";RC[-1])-1))

  Ячейка: C1      Формула  (стиль A1):   =ЕСЛИ(ЕОШ(НАЙТИ(",";A1));"";ПСТР(A1;НАЙТИ(",";A1)+1;100))
                  Формула  (стиль R1C1): =ЕСЛИ(ЕОШ(НАЙТИ(",";RC[-2]));"";ПСТР(RC[-2];НАЙТИ(",";RC[-2])+1;100))


Последний раз редактировалось EducatedFool; 22.10.2009 в 11:05.
EducatedFool вне форума Ответить с цитированием
Старый 22.10.2009, 10:43   #3
msser
Новичок
Джуниор
 
Регистрация: 22.10.2009
Сообщений: 4
По умолчанию

Что такое : =ЦЕЛОЕ(RC[-1])
msser вне форума Ответить с цитированием
Старый 22.10.2009, 10:45   #4
msser
Новичок
Джуниор
 
Регистрация: 22.10.2009
Сообщений: 4
По умолчанию

Спасибо большое, на последнее сообщение отвечать не надо.
msser вне форума Ответить с цитированием
Старый 22.10.2009, 12:29   #5
msser
Новичок
Джуниор
 
Регистрация: 22.10.2009
Сообщений: 4
По умолчанию Небольшая проблемка

Число А1 - деньги в формате "рубли,копейки".
Если А1 например 398,80, то С1 = 8, а не 80.
Как решить?
msser вне форума Ответить с цитированием
Старый 22.10.2009, 12:55   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Если в столбце "C" требуется получить копейки, то можно так:
Пусть в "A1" - число (руб, коп)
В "B1" пишем: "=ЦЕЛОЕ(A1)"
В "C1" пишем: "=(A1-B1)*100"
Тогда, например при A1=123,456 в "B1" получим 123, а в "C1" получим 45,6.
Устроит? Если нет, то как нужно?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 22.10.2009, 15:12   #7
Клякса
 
Регистрация: 06.10.2009
Сообщений: 3
По умолчанию РазДеление числа

Попробуй такой код:

Цитата:
Public Sub splitt()


Dim ss() As String ' массив чисел после деления
Dim st As String ' текстовое значение ячейки, содержимое которой надо разделить. Переменная введена только для облегчения восприятия кода.

st = Str(Cells(1, 1).Value) ' забираем содержимое ячейки
ss = Split(st, ".") ' делим число ; "." - делиметр
Cells(1, 2).Value = ss(0) ' вносим деленные части.
Cells(1, 3).Value = ss(1)

End Sub
Чем плохим вы меня порадуете?
Клякса вне форума Ответить с цитированием
Старый 23.10.2009, 04:32   #8
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Клякса
1. Хотя автор вопроса не оговаривает, какими средствами требуется решить задачу (а надо бы), очевидно, что нужно без VBA (формулами).
2. Если применять Ваш код, то я бы добавил отключение обработки ошибок On Error Resume Next, т.к. они возможны.
3. Функция Split(...) разобьет число, например, 398,8 на 398 и 8. А автору темы нужно получить 398 и 80 (см. пост №5).
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 23.10.2009 в 04:41.
SAS888 вне форума Ответить с цитированием
Старый 23.10.2009, 11:57   #9
Клякса
 
Регистрация: 06.10.2009
Сообщений: 3
По умолчанию To SAS888

Доброго времени суток.

Автору выбирать, каким средством пользоваться. Не понадобится - пролистает мимо.
Про обработку ошибок согласен, код я привел минимальный и по желанию туда много чего можно дописать. В том числе и добавления нуля в первом порядке.
Чем плохим вы меня порадуете?
Клякса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2-а знака после запятой vitamin.rulez Помощь студентам 7 22.05.2009 16:02
знаки после запятой RiF Помощь студентам 10 16.12.2008 20:04
Количество цифр после запятой LIEN БД в Delphi 7 03.07.2008 22:12
Сокращение после запятой Romuald Microsoft Office Excel 21 18.12.2007 10:32
Ограничение знаков после запятой,StringGrid Gorin Компоненты Delphi 9 20.09.2007 16:10