Подтвердить что ты не робот

Что делает в формулах Excel?

Пытаясь расшифровать некоторые формулы Excel, я вижу такие вещи, как SUMPRODUCT (--Left (...)...)

Что делает? Естественно, мне кажется, что это унизительно, но я не смог найти никакой документации по этому вопросу.

4b9b3361

Ответ 1

Двойной тире известен как двойной унарный оператор.

Попробуйте эту ссылку: Зачем использовать - в формулах SUMPRODUCT

В частности:

SUMPRODUCT() игнорирует нечисловые записи. Сравнение возвращает логическое значение (TRUE/FALSE), которое не является числовым. XL автоматически принудительно вводит логические значения в числовые значения (соответственно 1/0) в арифметических операциях (например, TRUE + 0 = 1).

Самый эффективный способ принуждения значения - это сначала применить унарный минус-оператор, принуждая TRUE/FALSE к -1/0, а затем снова применяя его для отрицания значения, например, +1/0.

Один унарный оператор (-) заставляет true/false значения в -1/0. Используя двойной унарный оператор, мы снова вызываем значения 1/0.

Ответ 2

Унарный оператор (-) является сокращенным методом преобразования выражения true/false в -1/0.

Один оператор преобразует - (true) в -1, поэтому двойной унарный оператор используется для преобразования этого значения в 1:

-(-(true)) = -(-(1)) = 1
-(-(false)) = -(-(0)) = 0

Ответ 3

Я использовал SUMPRODUCT некоторое время и всегда использовал символ * вместо --. Я уверен, что я задал тот же вопрос, который вы задали, но я не могу вспомнить причину, по которой они мне дали, но мне сказали, что нет необходимости в --, поскольку sumproduct справляется с этим довольно хорошо без он.

Во всяком случае, =sumproduct(()*()*()*()) всегда работал у меня, и он был менее запутанным.

Ответ 4

Логические значения TRUE и FALSE в excel рассматриваются как 1 и 0, но нам нужно их преобразовать. Чтобы преобразовать их в числа 1 или 0, выполните некоторую математическую операцию. Унарный оператор отрицает логическую (математическую операцию), следовательно, преобразует логическое значение в число. То же работает в TRUE * FALSE = 0