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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 26.12.2007, 12:12   #1
Shavminator
Пользователь Подтвердите свой е-майл
 
Регистрация: 03.12.2007
Сообщений: 49
По умолчанию В одной ячейке текст и число

Здравствуйте, с наступающим всех новым годом.
Вопрос такой
Можно ли в одной ячейке вставить текст и число.
например
Приход по контрагентам
="Контрагент "+сумм()
и чтоб когда приходы или расходы изменились сумма в формуле тоже изменился, как простая =сумм().

и еще вопрос.
есть много данные, вид как число но сохранено как текст.
поставил тип число не помогает, мне нужно суммироват или вычесть, не получается.
нашел выход. Если нажать F2 и затем Enter число сохряняется в числовом варианте и можно сделать разные расчеты.
но этих данных через чур много, по ячейкам много времени уйдет.
как сделать это автоматически.

Заранее благодарю
Shavminator вне форума
Старый 26.12.2007, 12:29   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

1) Используй функцию =СЦЕПИТЬ(значение1, значение2, ...)
2) Используй функцию =Ч(значение)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 26.12.2007, 12:37   #3
Alkaline
Пользователь
 
Регистрация: 22.11.2007
Сообщений: 79
По умолчанию

По первому: ссылки с амперсандом (&) дадут нужное, например:

=A1&B23

или

="Контрагент "&B3


По второму: Обычно Excel отслеживает такую проблему и предлагает заменить на число. Нужно выделить всю область, содержащую такие значения, и, кликнув мышью в рядом расположенный восклицательный знак, выбрать "Преобразовать в число".
Alkaline вне форума
Старый 26.12.2007, 14:52   #4
Shavminator
Пользователь Подтвердите свой е-майл
 
Регистрация: 03.12.2007
Сообщений: 49
По умолчанию

Огромное спасибо, если будут проблемы сообщю...
Shavminator вне форума
Старый 27.12.2007, 09:50   #5
Shavminator
Пользователь Подтвердите свой е-майл
 
Регистрация: 03.12.2007
Сообщений: 49
По умолчанию

А по поводу второго вопроса насчет форматов есть какие нибудь предложения.
Заранее благодарю.
Shavminator вне форума
Старый 27.12.2007, 11:03   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Если, например, в "A1" число 5 в текстовом формате, а в ячейке "B1" число 7 в общем (или числовом) формате, то написав в ячейке "C1" формулу
"=A1*B1", возможны следующие варианты:

1) Если ячейка "C1" имеет текстовый формат - получим строку "=A1*B1".
2) Если ячейка "C1" имеет общий(или числовой) формат - получим 35, но формат ячейки "C1" изменится на текстовый.

Чтобы получить результат 35 в общем формате, нужно во-первых, чтобы ячейка "C1" исходно имела общий формат, во-вторых формула в "C1" должна иметь вид: "=Ч(A1*B1)". Т. е. результат вычислений преобразуем в числовой формат и помещаем в ячейку, имеющую соответствующий формат.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 27.12.2007, 12:00   #7
Alkaline
Пользователь
 
Регистрация: 22.11.2007
Сообщений: 79
По умолчанию

Shavminator, я понимаю, что когда такая проблема возникла, хочется решить ее изящно, без дополнительных формул и вспомогательных ячеек. Решить - и забыть раз и навсегда. Придется разобрать детально.

Во-первых, проблема появляется только тогда, когда ячейкам сначала был присвоен текстовый формат, а потом туда вставили или ввели числовые значения. (Если были числа, потом их сделали текстом, а потом опять указали числовой формат ячеек, то проблемы не возникает.) Отсюда следует, что устанавливать формат ячеек желательно до вставки - это на будущее.

Далее, в Excel 2003 и, кажется 2002 (а может, и 2000) есть указатель в виде зеленого треугольника в левой верхней части ячейки (и восклицательного знака при выборе ячейки), когда там ошибка. В ниспадающем списке для такой ситуации ("Число сохранено как текст") есть возможность автоматически преобразовать значение в число. При этом для связных диапазонов (выбираемых без зажатия клвиши Ctrl) данную операцию можно выполнить за один раз.

Едем дальше. Можно, конечно, после установки формата ячейки "Числовой" нажать F2 для редактирования и тут же Enter - тогда значение ячейки придет в норму. Руками это делать муторно. Вот макрос, который для всего предварительно выделенного диапазона установит сначала формат "Общий", а потом пройдется по каждой ячейке, "нажимая" F2 и Enter (можно выделить и весь лист, т.е. не только проблемные ячейки, но для них всех будет установлен формат "Общий"!):

Код:
Sub Макрос1()

Selection.NumberFormat = "General"

For i = 1 To Selection.Cells.Count
Application.SendKeys ("{F2}~")
Next

End Sub
ВНИМАНИЕ! Поскольку нажатия посылаются активному приложению, то запускать макрос нужно на рабочем листе Excel, а не из редактора Visual Basic, т.ч. следует произвести назначение кнопки или горячей клавиши макросу (например, Ctrl+m). Вызывается меню макросов по Alt+F8.

Также можно не назначать принудительно формат "Общий" - для этого нужно удалить строку Selection.NumberFormat = "General" и перед выполнением макроса вручную установить желаемый формат для выделенных ячеек.

Последний раз редактировалось Alkaline; 27.12.2007 в 12:07.
Alkaline вне форума
Старый 27.12.2007, 12:10   #8
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

Попробуйте так, у меня работает.
Выделяете диапазон, а затем запускаете этот макрос

Код:
Sub Test()
Dim iCell As Range
    Selection.NumberFormat = "General"
    For Each iCell In Selection.Cells
        iCell.Value = iCell.Value
    Next
End Sub
Pavel55 вне форума
Старый 27.12.2007, 12:30   #9
Alkaline
Пользователь
 
Регистрация: 22.11.2007
Сообщений: 79
По умолчанию

Да, так красивее.
Alkaline вне форума
Старый 27.12.2007, 12:30   #10
Shavminator
Пользователь Подтвердите свой е-майл
 
Регистрация: 03.12.2007
Сообщений: 49
По умолчанию

Вот огромное спасибо ребята, помогли.
А что с помощю VBA можно так просто все сделать?
А где взять справочник по VBA? а то там все по английски.
и еще, если изучить VBA в Exel-е, потом можно будет работать и в Access-e?
Или VBA в Exel и VBA в Access разные вещи.

Последний раз редактировалось Shavminator; 27.12.2007 в 12:38.
Shavminator вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скопировать по одной ячейке из нескольких файлов в один Nimo Microsoft Office Excel 2 09.08.2008 09:25
Как разделить число и текст в одной ячейки на две ячейки. neboskreb Microsoft Office Excel 2 15.04.2008 19:39
два числа в одной ячейке zetrix Microsoft Office Excel 1 23.12.2007 23:24
в одной ячейке надписи были в 2-х или 3-х рядках и текст отображался целиком а не прятался за границами KSP Общие вопросы Delphi 7 20.09.2007 20:33
суммирование вводимых чисел в одной ячейке Albert Microsoft Office Excel 8 07.01.2007 23:47