Помогите с формулой.

Автор PoliteInspire, 7 декабря 2010, 15:35

0 Пользователи и 1 гость просматривают эту тему.

PoliteInspire

Здравствуйте.
Скажите пожалуйста как правильно записать формулу.

Допустим если в ячейки А1 находится текст то в ячейку А2 прибавляется 1, если в ячейки А1 нет текста то в ячейку А2 прибавляется ноль.

Заранее спасибо всем ответившим.

VlhOwn

1. Если "текст" - это именно текст, то условие будет ISTEXT(A1)
2. Если "текст" означает, что там вообще что-то есть, то условие будет NOT(ISBLANK(A1))
3. Если "прибавляется" означает, что значение A2 увеличивается на единицу, то такого напрямую сделать нельзя. Но можно воспользоваться дополнительными ячейками, например, A3 и A4. В А3 должно быть исходное значение A2, в A4 формула =IF(<условие>;1;0), а в A2 формула =A3+A4.
4. Если "прибавляется" означает не увеличение, а просто запись значения в ячейку, то формула в A2 будет иметь вид =IF(<условие>;1;0).

PoliteInspire

VlhOwn

Чёт я немного не понял. Выдаётся ответ лож даже если в ячейке, что-то есть.
Записал так: =IF (<NOT(ISBLANK.А1)>;1;0)

VlhOwn

#3
Угловые скобки уберите. В угловых скобках у программистов принято записывать понятия, которые в конкретных случаях заменяются конкретными величинами/формулами.
=IF(NOT(ISBLANK(А1);1;0)) - у Вас там еще пробел после IF лишний

PoliteInspire

#4
VlhOwn

Убрал. Получилось так: =IF(NOT(ISBLANK.A1);1;0)
Всё равно пишет ложь
Пробел тоже убрал.
А так как записано у вас вообще ошибку выдаёт.
Пользуюсь OpenOffice 3.2.0 может проблема в версии.

convas

Такую попробуйте:

=IF(A1="";0;1)

Ivanych

Цитата: PoliteInspire от  7 декабря 2010, 15:09Убрал. Получилось так: =IF(NOT(ISBLANK.A1);1;0)
Странно, у меня данная конструкция отказывается работать как факт. Нет ли у Вас в таблице листа с названием "IsBlank"? Может книгу приложите? Вот это: =IF(NOT(ISBLANK(А1);1;0)) работает без вопросов. По поводу истины и лжи: посмотрите на формат ячейки - он, случайно не логический ли?

JohnSUN

Мне тут местный телепат подсказал после фразы "А так как записано у вас вообще ошибку выдаёт." Поскольку самый вероятный вариант для такой ситуации - написание формулы в той же ячейке, на которую ссылается формула, то...

PoliteInspire, в ячейку A1 пишем или стираем текст. А в ячейке A2 пишем формулу, которую предложил  VlhOwn
=IF(NOT(ISBLANK(A1));1;0)
или которую предложил convas
=IF(A1="";0;1)

Ivanych, там закрывающую скобку передвинуть надо чуть вперед. А то будет выдавать истина/ложь вместо 0/1
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

PoliteInspire

convas рулит!!! Спасибо всё работает.
=IF(NOT(ISBLANK(A1));1;0) - работать отказывается в любом исполнении. Как я его уже не крутил. В лучшем случае выдаёт второе значение не смотря на то, что находится в ячейки. И насчёт телепата - не надо принимать меня за идиота.

JohnSUN

#9
А в таком виде сработает?
=IF(ISBLANK(A1);0;1)

Насчет телепата... Извини, не хотел никого обидеть. Просто случаи бывают разные. А "телепат" - это устоявшийся образ на форуме: когда вдруг догадываешься, что и почему не сработало, ссылаешься на него. Серьёзно, извини, пожалуйста!
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

VlhOwn

Да все там просто было - отсутствовала закрывающая скобка у NOT. И, конечно, последний вариант JohnSUN - разумнее.
__________________________
А насчет телепата, так что уж тут обижаться... Вы посмотрите как мне пришлось расписывать свой первый ответ из-за нечеткости формулировок и общей постановки вопроса. Поневоле приходится быть телепатом, чтобы угадать, что вопрошающий на самом деле имеет в виду. :)

[вложение удалено Администратором]

PoliteInspire

#11
JohnSUN
Да без NOT работает.
Я не обиделся. Всё путём.

Нет ли какой не будь формулы для плюсования 1, а то у меня ячеек много и добавлять к каждой ещё две мне уж никак не хочется. Быть может я неверно задал вопрос? Задача состоит в следующем – необходимо сосчитать все заполненные ячейки.
Например:
У нас есть 10 ячеек. В 6 из них находятся символы в четырёх ничего нет. Надо вывести сколько ячеек заполнено.

VlhOwn
И чё непонятного я спрашиваю.

VlhOwn

#12
Функция COUNTA(<диапазон>) подсчитывает число непустых ячеек в диапазоне-аргументе.
_______________________
Про непонятное - в моем Вам первом ответе. Мне пришлось предполагать четыре варианта.

UPD: Прибавлять к ячейке 1 невозможно в принципе, если результат должен быть в той же ячейке.
Запись A1=A1+1 возможна только в программировании, где это обозначает последовательность действий:
- взять значение ячейки A1
- прибавить к нему единицу
- положить результат в A1.

Электронные таблица - штука статичная, они в каждый момент времени описывают соотношения между ячейками таблицы. И то, что нечто равно самому себе, увеличенному на единицу, - вещь возможная только в том случае, ежели это самое нечто - бесконечность, чего в Calc не бывает.

[вложение удалено Администратором]

Ivanych

Цитата: JohnSUN от  7 декабря 2010, 17:07Ivanych, там закрывающую скобку передвинуть надо чуть вперед. А то будет выдавать истина/ложь вместо 0/1
Вот до чего лень и температура доводят - в Calc все исправил, но решил контрол-це сделать из форума. Звиняйте, был не прав.
По поводу =IF(A1="";0;1): при работе с БД Null и пустая строка - абсолютно не идентичны. А в Calc?

VlhOwn

В Calc все значительно хуже.
Пустая ячейка - это и null, и ноль (при сложении с ней), и пустая строка (в операциях со строками). Это плата за возможность выделить диапазон, щелкнуть по функции и получить результат.

Вот Вам еще пример несуразности, порожденной стремлением к лаконичности и эргономичности: есть диапазон ячеек, содержащих как числовые, так и текстовые значения. Так вот, если применить функцию SUM() к этому диапазону, значения просуммируются, причем текстовые величины будут трактоваться как нулевые. А если просуммировать все те же ячейки с помощью обычного значка "+", то результатом будет ошибка. То есть Sum(a,b), вообще говоря, не равно a+b.

Откуда это? Да все просто - вот у вас есть столбец данных, сгруппированных по периодам, и названия периодов (текстовые величины) находятся в этом же столбце. Конечно, можно повыделять только числовые поддиапазоны этого столбца, но это долго и муторно. А вот выделить весь столбец и ткнуть мышью в значок суммы - просто и заманчиво. Вот оно и реализовано так. В противовес всякой привычной логике.