Страницы: 1
RSS
Как подставить значение полученное в теле функции "ЕСЛИ"?
 
Дано:
Значение ячейки A1=100x100
Значение ячейки A2=200x250*

В ячейках B1 и B2 хочу получить площадь м2.
Составил формулу для B1 и B2:
Код
B1=(ЛЕВСИМВ(A1;ДЛСТР(A1)-НАЙТИ("x";A1))*(ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ("x";A1))))/1000000)

С значением А1 все просто нашли, символы до "x", нашли символы после, получили ответ.
Но та же формула не считает ячейку A2 из-за символа "*"
Наверное я начал усложнять но формула получила следующий вид:
Код
=ЕСЛИ(НЕ(ЕОШ(НАЙТИ("*";А1)));ЗАМЕНИТЬ(А1;НАЙТИ("*";А1);1;"";);(ЛЕВСИМВ(А1;ДЛСТР(А1)-НАЙТИ("x";А1))*(ПРАВСИМВ(А1;ДЛСТР(А1)-НАЙТИ("x";А1))))/1000000)

Если звездочки нет считаем по формуле для ячейки А1 если звездочка есть ее нужно убрать:
Код
B2=ЗАМЕНИТЬ(А1;НАЙТИ("*";А1);1;"";)
в ячейке получаем результат без «*» но как с этим работать в теле функции ЕЛСЛИ?
 
во первых так покороче будет
Код
=ЛЕВСИМВ(A1;НАЙТИ("х";A1)-1)

т.к. * во второй части текста то если можно применить лишь во второй части формулы.
Код
=ЛЕВСИМВ(A2;НАЙТИ("х";A2)-1)*ПСТР(A2;НАЙТИ("х";A2)+1;ДЛСТР(ЕСЛИ(ЕОШИБКА(ПОИСК("*";A2));A2;ПОДСТАВИТЬ(A2;"*";"")))-НАЙТИ("х";A2))/1000000
Изменено: V - 30.01.2013 17:22:22
 
Код
=ПСТР(A1;1;ПОИСК("x";A1)-1)*ПСТР(ПОДСТАВИТЬ(A1;"*";"");ПОИСК("x";A1)+1;10)
 
Цитата
Diesel2001 пишет: ...
Значение ячейки A1=100x100
Значение ячейки A2=200x250

Предлагается, как вариант:
Значение ячейки A1=100, Значение ячейки B1=100
Значение ячейки A2=200, Значение ячейки B2=250
Далее - по смыслу ...  ;)
ps Есть еще вариантик - ищем , изучаем "вычислить"...
Изменено: Z - 30.01.2013 17:37:40
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Z, спасибо, не уточнил с самого начала текст должен быть одной ячейкой.
Легких путей не ищем =)
Цитата
Михаил С. пишет:
Код
 =ПСТР(A1;1;ПОИСК("x";A1)-1)*ПСТР(ПОДСТАВИТЬ(A1;"*";"");ПОИСК("x";A1)+1;10) 
Цитата
О сколько нам открытий чудных
Готовят просвещенья дух
И опыт, сын ошибок трудных,
И гений, парадоксов друг...
Спасибо, подскажите, что из литературы почитать по excel для получения более глубоких познаний или это со временем придет?
В справку смотрю постоянно =)

PS: А если все же по той формуле, что я сочинил как воспользоваться значением полученным в теле функции "ЕСЛИ"?
Изменено: Diesel2001 - 31.01.2013 00:26:30
 
Цитата
Diesel2001 пишет: Легких путей не ищем =)
Только не сами по ним идете -  поводыри ведут... ;)
А вариант с "вычислить" не устроит?.. Правда, ваши "х" на "*" придется поменять...
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Цитата
Z пишет:
Только не сами по ним идете -поводыри ведут... ;)
Ну почему же? Я формулу написал хоть и корявую, затык только в "*".
Михаил С. предложил готовое решение и намного проще моего.

"x" - это обще принятое а x b.
"*" - обозначается сноска.
Функции "вычислить" в справке не нашел.
 
Цитата
Diesel2001 пишет: Функции "вычислить" в справке не нашел.
Вариант... Для ознакомления и применения... ;)
ps Поиск - он и в Африке поиск.
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Цитата
Diesel2001 пишет:
B2=ЗАМЕНИТЬ(А1;НАЙТИ("*";А1);1;"" ; )
Это поездка из Москвы в Петербург через Владивосток. По-простому -
Код
=ПОДСТАВИТЬ(A1;"*";"" ;) 
а если нет "*", ошибки нет, а значит и ЕОШ не нужна, вместе с ней и ЕСЛИ лишнее  :D  .
А так, если оплата посимвольно, нормально,  :D  можно еще добавить, в случАе чего...
Изменено: Михаил С. - 30.01.2013 18:23:45
 
Цитата
Михаил С. пишет:
А так, если оплата посимвольно, нормально,:Dможно еще добавить, в случАе чего...
Делаю для себя. Продавать не буду =)))
 
Можете посмотреть, можно оптимизировать формулы или нельзя?
Если можно подскажите о каких функциях почитать, хочу сам попробовать.

Z Спасибо, ваш пример посмотрел, удобная штука.
Изменено: Diesel2001 - 31.01.2013 12:38:50
 
Наверное, можно.
Для начала найдите циклическую ссылку и избавьтесь от нее.
Страницы: 1
Читают тему
Наверх