Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 635
от 23.10.2007, 11:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 275, Экспертов: 33
В номере:Вопросов: 1, Ответов: 6


Вопрос № 105914: Добрый день уважаемые эксперты! Подскажите как мне в файле Excel из колонки, где такие данные (число)текст, сделать две колонки следующие: число текст.... ..

Вопрос № 105.914
Добрый день уважаемые эксперты! Подскажите как мне в файле Excel из колонки, где такие данные (число)текст, сделать две колонки следующие: число текст....
Отправлен: 18.10.2007, 11:31
Вопрос задал: Чернов С.В. (статус: Посетитель)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Alexander N. Monastyrsky
Здравствуйте, Чернов С.В.!
Это несложно.
А1 - число
В1 - текст
В ячейку С1 добавляем формулу "=СЦЕПИТЬ(A1;" ";B1)"
функция "сцепить" позволяет соединить до 30 возможных выражений.
Выражения вставляются в !текстовом! виде.
Тоесть чтобы добавить выражение чистовое или дату, то для правильного отображдения нужно преобразовать выражение в текст.

Приложение:

---------
Страшен Русский сервис, бессмысленный и беспощадный...

Ответ отправил: Alexander N. Monastyrsky (статус: 2-ой класс)
Ответ отправлен: 18.10.2007, 11:49
Оценка за ответ: 5
Комментарий оценки:
(число)текст - это в одной колонке так) но все равно спасибо

Отвечает: Genyaa
Здравствуйте, Чернов С.В.!

Посмотрите Меню-Данные-Текст по столбцам...
---------
Всякое решение плодит новые проблемы.
Ответ отправил: Genyaa (статус: Студент)
Ответ отправлен: 18.10.2007, 12:25

Отвечает: Филатов Евгений Геннадьевич
Здравствуйте, Чернов С.В.!
Может я не так понял вопрос, но Вы указали, что данные находятся в одной колонке в виде "(число)текст" , например в ячейке A1 находится строка "(123.45)privet".
В таков случае для разделения может помочь две формулы :
ячейка B1 "=ПСТР(A1;2;ПОИСК(")";A1;1)-2)"
ячейка C1 "=ПСТР(A1;ПОИСК(")";A1;1)+1;ДЛСТР(A1))"
Производится поиск закрывающей скобки в тексте ячейки и строка делится по этому символу.
Во второй формуле вместо "ДЛСТР(A1)" корректней было бы написать "ДЛСТР(A1)-ПОИСК(")";A1;1)" , но т.к. строка берется до конца, то в случае превышения количества символов, которые нужно выделить, над общей длиной строки берется фактическое их количества без вывода ошибки. В данном примере берется текст начиная с 10 позиции в количестве 15 символов - с 10 по 24 символ, что больше реальной длины строки в 15 символов.
С уважением.
Ответ отправил: Филатов Евгений Геннадьевич (статус: 8-ой класс)
Ответ отправлен: 18.10.2007, 15:38
Оценка за ответ: 5
Комментарий оценки:
Да именно то, что надо.... спасибо

Отвечает: Caspian
Здравствуйте, Чернов С.В.! Число в исходном столбце у Вас на самом деле в скобках, или там только пробел? Если только пробел, предлагаю формылы. "=ЗНАЧЕН(ЛЕВСИМВ(A1;ПОИСК(" ";A1)-1))" - это для числа. "=ПСТР(A1;ПОИСК(" ";A1)+1;10000)" - для текста. Если же число в скобках, то перед использованием "ЗНАЧЕН" нужно их убрать с помощью "ПОДСТАВИТЬ" (если не знаете как, напишите в личку или в комментарии к ответу).
Ответ отправил: Caspian (статус: 1-ый класс)
Ответ отправлен: 18.10.2007, 16:21
Оценка за ответ: 5

Отвечает: Черников Игорь Владимирович
Здравствуйте, Чернов С.В.!
Do
chetchik = chetchik + 1
znachenie = Worksheets("Лист1").Range("A" & chetchik).Value
If chetchik = "" Then Exit Do
chislo = Val(znachenie)
Text = Mid(znachenie, Len(chislo) + 1)
Worksheets("Лист1").Range("B" & chetchik).Value = chislo
Worksheets("Лист1").Range("C" & chetchik).Value = Text
Loop
---------
От каждого по способностям, каждому по труду
Ответ отправил: Черников Игорь Владимирович (статус: 6-ой класс)
Ответ отправлен: 18.10.2007, 17:23
Оценка за ответ: 5
Комментарий оценки:
Супер, макросом даже лучше)

Отвечает: Архипов Александр Леонидович
Здравствуйте, Чернов С.В.!
Если формат в ячейке действительно (число)текст , то можно и без VBA.
В первой колонке (там где должны появиться число) формула:
=ЗНАЧЕН(ПСТР(A1;НАЙТИ("(";A1)+1;НАЙТИ(")";A1)-2))
Во второй колонке (там где должен остаться текст) формула:
=СЖПРОБЕЛЫ(ПСТР(A1;НАЙТИ(")";A1)+1;ДЛСТР(A1)-НАЙТИ(")";A1)))
Ответ отправил: Архипов Александр Леонидович (статус: 7-ой класс)
Ответ отправлен: 19.10.2007, 05:40


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.61.1 от 16.10.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное