Консультация № 151841
25.11.2008, 20:38
0.00 руб.
0 14 2
Уважаемые эксперты! Вопрос по Microsoft Exсel XP следующего характера.
Как сделать так, чтобы целая часть числа бралась из одной ячейки, а дробная - из другой?

Например: в ячейке А1 имеется число 1, в ячейке B1 - число 2.
Необходимо получить в ячейке A2 число 1,2

Обсуждение

Неизвестный
25.11.2008, 20:48
общий
это ответ
Здравствуйте, Сазанов Дмитрий Владимирович!
В ячейку A2 вставьте формулу (в строку формул для ячейки А2).
см. приложение

Приложение:
=A1 & "." & A2
давно
Модератор
137394
1850
25.11.2008, 21:18
общий
По моему скромному мнению лучше сделать
=ЗНАЧЕН(A1&"."&B1)
так как без функции ЗНАЧЕН полученные символы нельзя, например, просуммировать стандартной функцией СУММ. И, кроме того, в зависимости от настройки системы вместо точки может понадобиться запятая, как это указано в вопросе
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Неизвестный
25.11.2008, 21:24
общий
По-моему, суммировать и не нужно было. Вопрос был только про получение числа из чисел двух ячеек. Но можно и так.
Неизвестный
25.11.2008, 21:32
общий
это ответ
Здравствуйте, Сазанов Дмитрий Владимирович!

Действительно, в ответе предыдущего эксперта результирующая ячейка будет текстового вида.
Можно использовать формулу =A1+B1/100
Только желательно чтобы формат первых двух столбцов был числовой. Или добавить преобразование в числовой формат.
Тогда формула будет выглядеть так =Ч ( A1 ) + Ч ( B1 ) / 100
Если значение в исходных ячейках нельзя преобразовать в число, то вместо значащих символов в соответствующей позиции будет 0 ( до или после десятичной точки ).

С уважением.
давно
Модератор
137394
1850
25.11.2008, 22:38
общий
Цитата: Филатов Евгений Геннадьевич
Можно использовать формулу =A1+B1/100
- низззяяя! Например, в поставленной задаче по этой формуле получим 1,02 (а требовалось 1,2). Решение Сергей Луконин красивое, а если применить функцию ЗНАЧЕН, то и надёжное.
А еще надёжнее (не надо думать о правильном разделителе целой и дробной части) вот такая формула
=A1+B1/СТЕПЕНЬ(10;ДЛСТР(B1))
но она длинновата ... Хотя еще можно придумать пару вариантов на эту же тему.
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Неизвестный
25.11.2008, 23:15
общий
но тогда возникает проблема с разделителем целой и дробной части. стандартными функциями его получить нельзя, только через VBA, например в макросе.
если пользователь изменить системный резделитель с "точки" на "запятую", то A1 & "." & A2 уже точно в число преобразовать не получится, или дробная часть отсечется.
тогда лучше добавить проверку на количество знаков в ячейке. например
=Ч( A1 ) + ЕСЛИ( ДЛСТР(B1)<2; ЗНАЧЕН(B1)*10;ЗНАЧЕН(B1)) / 100
но тогда как распознать, что нужно получить дробную часть 20, а не 2.
мне кажется, что ошибка в вопросе, вернее в примере нужного результата.
ведь значение "02" сохранится в ячейке, только если она текстового формата. при любых других вариантах формата ячейки, в том числе и "общий", будет некорректное преобразование на "2" или "02.01.1900" или другое.

подождем что скажет в этом мини-форуме задавший вопрос.
давно
Модератор
137394
1850
25.11.2008, 23:22
общий
Цитата: Филатов Евгений Геннадьевич
но тогда возникает проблема с разделителем целой и дробной части. стандартными функциями его получить нельзя, только через VBA, например в макросе.
- ну не всё так грустно, например, можно изобразить вот такую формулу
=A1&ПРАВСИМВ(ЛЕВСИМВ(1,1;2);1)&B1
При неверном разделителе в числе 1,1 Excel не даст ввести формулу, при перенастройке разделителя он будет неизбежно преобразован и правильно выделен.
Цитата: Филатов Евгений Геннадьевич
ведь значение "02" сохранится в ячейке, только если она текстового формата
С моей точки зрения если ячейка текстовая и в ней 02, то ответ должен быть 1,02
Эта формула отработает именно так
Цитата: Филатов Евгений Геннадьевич
]ЕСЛИ( ДЛСТР(B1)<2; ЗНАЧЕН(B1)*10;ЗНАЧЕН(B1)) / 100
-гораздо проще и работает с любым числом (в пределах разумного) знаков предложенная мной формула для вычисления 10 в нужной степени СТЕПЕНЬ(10;ДЛСТР(B1))
Попробуйте написать свою цепочку ЕСЛИ для значения B1=123456789
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Неизвестный
25.11.2008, 23:40
общий
а может нужен всего один знак после запятой?

в общем вопрос поставлен немного некорректно.

будем ждать.
Неизвестный
26.11.2008, 00:01
общий
Как вариант:
=ЗНАЧЕН(A1&ПСТР(0,1;2;1)&B1)
правда, длина формулы получилась равной предложенной megaloman...
Неизвестный
26.11.2008, 02:42
общий
стандартными функциями его получить нельзя, только через VBA, например в макросе.

Ребят, вы чет уже не в ту степь ушли Человеку надо было из двух чисел одно получить, только и всего, а вы уже в макросы полезли
давно
Модератор
137394
1850
26.11.2008, 09:50
общий
To Сергей Луконин! Нет предела совершенству! И каждый развлекается как может
To Alec Perle - у Вас с символами короче чем у меня с символами. Мне еще там надо ЗНАЧЕН поставить. Я не вспомнил функцию подстроки (не увидел в Хелпе).
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Неизвестный
26.11.2008, 15:53
общий
to megaloman

по поводу разделителя
ПРАВСИМВ(ЛЕВСИМВ(1,1;2);1)


можно немного изменить формулу

ПРАВСИМВ(ЛЕВСИМВ(1+1/10;2);1)

тогда точно на второй позиции будет системный разделитель
Неизвестный
26.11.2008, 17:48
общий
Огромное всем спасибо!!!
Не надо углубляться дальше...
Да, мне действительно надо было после образования числа далее производить с ним вычислительные действия... Но даже после использования =A1 & "." & A2 арифметические действия выполнялись (нужны были элементарные действия, типа +, -, *, /)... А уж при использовании =ЗНАЧЕН(A1&"."&B1) вообще данные вопросы снимаются...
давно
Модератор
137394
1850
26.11.2008, 18:20
общий
Филатов Евгений Геннадьевич
ПСТР(3/2;2;1)
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Форма ответа