Страница: 1 |
Страница: 1 |
Вопрос: Выделение числа из текста в excel. HELP!!!
Добавлено: 20.07.08 10:10
Автор вопроса: Black__Hole | ICQ: 164901252
Подскажите, пожалуйста, как можно средствами excel сделать следующее:
В ячейку вводится текст "34,6 х 3,2".
Надо выделить числа, перемножить их, использовать полученный результат в дальнейших расчетах.
Можно ли это сделать без использования макросов?
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
Jktu
ICQ: 381648295
Вопросов: 8
Ответов: 32
Профиль | | #1
Добавлено: 20.07.08 10:52
Можно и без макросов, с помощью формул.
Только для этого нужно, чтобы числа имели фиксированную длину. Ну или вообще хоть что-то общее, например, пробелы вокруг знака умножения "х".
Допустим, текст в ячейке А1. Формула:
=ЛЕВСИМВ(A1;4)*ПРАВСИМВ(A1;3)
Возможно (в зависимости от настроек Экселя) нужно будет заменить запятую на точку:
=ЗАМЕНИТЬ(ЛЕВСИМВ(A1,4),3,1,"."*ЗАМЕНИТЬ(ПРАВСИМВ(A1,3),2,1,"."
Если числа не фиксированной длины, но вокруг знака умножения всегда стоят пробелы, тогда:
=ЛЕВСИМВ(A1;НАЙТИ(" ";A1)-1)*ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(" ";A1)-2)
Или, опять же, если необходимо заменить запятую на точку:
=ПОДСТАВИТЬ(ЛЕВСИМВ(A1,НАЙТИ(" ",A1)-1),",","."*ПОДСТАВИТЬ(ПРАВСИМВ(A1,ДЛСТР(A1)-НАЙТИ(" ",A1)-2),",","."
Номер ответа: 2
Автор ответа:
Black__Hole
ICQ: 164901252
Вопросов: 1
Ответов: 2
Профиль | | #2
Добавлено: 20.07.08 11:30
Спасибо! Хотя уже успела разобраться самостоятельно следующим образом:
Используются 3 вспомогательные ячейки
ячейка K1 =ПОИСК("х";A1;1)
ячейка K2 =ЛЕВСИМВ(A1;K1-1)
ячейка K3 =ПСТР(G14;H14+1;6)
Ну, потом легко из K2 и K1 считаем площадь, периметр.
В моем решении не важно, сколько пробелов стоит до или после знака умножения, однако встала другая проблема:
пользователь может ошибиться при вводе и поставить, к примеру, лишний пробел в самом числе ("5 ,6 х 5,22).
Как удалить такие пробелы?
Номер ответа: 3
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #3
Добавлено: 20.07.08 12:04
Наверное какой-то другой строковой функцией?
Номер ответа: 4
Автор ответа:
Black__Hole
ICQ: 164901252
Вопросов: 1
Ответов: 2
Профиль | | #4
Добавлено: 20.07.08 12:42
Наиболее подходящей представляется функции замещения. Однако в данном случае символ пробела надо замещать на отсутствие символа. Как сделать это?
Номер ответа: 5
Автор ответа:
Jktu
ICQ: 381648295
Вопросов: 8
Ответов: 32
Профиль | | #5
Добавлено: 20.07.08 14:29
Самая подходящая вот эта итоговая формула:
=ЛЕВСИМВ(ПОДСТАВИТЬ(A1;" ";""НАЙТИ("х";ПОДСТАВИТЬ(A1;" ";"")-1)*ПРАВСИМВ(ПОДСТАВИТЬ(A1;" ";""ДЛСТР(ПОДСТАВИТЬ(A1;" ";"")-НАЙТИ("х";ПОДСТАВИТЬ(B1;" ";""))
Только формула выдаст ошибку, если она не найдёт в ячейке "х". То есть он там должен быть в любом случае.
Номер ответа: 6
Автор ответа:
Jktu
ICQ: 381648295
Вопросов: 8
Ответов: 32
Профиль | | #6
Добавлено: 20.07.08 14:32
То же самое можно сделать и для функции сложения, вычитания, деления. Можно сделать так, чтобы функция распознавала сама, какой там содержится знак. Только это будет мега-формула!
И работать она будет только в том случае, если в ячейке содержится только одно арифметическое действие.
Удачи!