сумма значений ячеек в листах google, если результат их суммы с соседней ячейкой соответствует условию

Предположим, у меня есть следующие данные в электронной таблице, где первая строка содержит заголовки столбцов, а первый столбец содержит индекс строки (для справки):

  ||A  |  B  |  C  |
==||================
0 ||2  |  3  |  Y  |
--||----------------
1 ||2  |  4  |  Y  |
--||----------------
2 ||3  |  5  |  N  |
--||----------------
3 ||8  |  3  |  Y  |
--||----------------

Как я могу получить сумму всех значений в столбце B, для которых b - a >= 1 && c == "Y", в Google Sheets и Excel?

Таким образом, сумма должна учитывать только строки 0 и 1, и в этом случае результат должен быть 7.

Я знаю, что это звучит как очень конкретный вопрос, но я не знал, как еще описать его, кроме как на примере. Ответ должен быть применим в других подобных сценариях.

Спасибо за помощь.

[Изменить] В ответ на то, что люди проголосовали против из-за отсутствия исследований, я попытался использовать функцию sumif(), но сразу застрял на части условия, так как я не уверен, как сравнить текущий элемент в агрегация с другой клеткой. Я также пытался использовать функцию sumifs(), которая позволяет использовать несколько критериев, но тоже безрезультатно. Что касается моего исследования, я искал в Google, но ничего не нашел, возможно, из-за моей неспособности выразить требование способом, подходящим для запроса Google. Поэтому я представил вышеизложенное как способ объяснить свое требование на примере.

Надеюсь, это поможет.

Я понимаю, что это может быть невозможно сделать с помощью простых встроенных формул. Если это так, пожалуйста, укажите это, поскольку это также было бы полезно знать.

Спасибо.


person Muhammad Abdurrahman    schedule 07.11.2017    source источник
comment
Что вы пробовали? С какими проблемами вы столкнулись? Вы должны быть в состоянии выполнить это с помощью комбинации простых формул и фильтрации (возможно, несколькими различными способами). Какие исследования вы провели в отношении этих методов?   -  person Tracy Moody    schedule 08.11.2017
comment
re: 'Я не знал, как еще описать это, кроме как на примере' — вы можете дополнить свой пример формулами, которые вы пробовали до сих пор. Кстати, нет строки 0.   -  person    schedule 08.11.2017
comment
Я пытался использовать sumifs() в листах Google и sumif() в Excel, но застрял на том месте, где мне нужно агрегировать результаты, полученные в результате другого расчета. @Jeeped, извините, я только что использовал индекс на основе 0 для ссылки только в моем вопросе, это не влияет на фактический вопрос. Спасибо :)   -  person Muhammad Abdurrahman    schedule 09.11.2017


Ответы (1)


Excel: =SUMPRODUCT(((B:B-A:A)>=1)*(C:C="Y")*(B:B))

Не проверено, но дайте мне знать, если это сработает. В следующий раз не забудьте добавить пример кода/формул, которые вы уже пробовали и с какой ошибкой столкнулись.


Редактировать:

Протестировал это, вот скриншот, на котором он работает с данными вашего примера (не обращайте внимания на тот факт, что мой Excel на испанском языке) введите здесь описание изображения

Это работает путем пересечения обоих логических тестов (то есть выполнения логического И): (B-A)>=1 И C="Y". Здесь вы можете увидеть результат каждого логического теста, а затем, наконец, когда он оценивается как ИСТИНА, он возвращает значение в столбце B; где FALSE, возвращается 0. Наконец, он суммирует значения в результирующем массиве.

введите здесь описание изображения

person Fernando J. Rivera    schedule 07.11.2017
comment
Можете ли вы объяснить это, пожалуйста? - person Muhammad Abdurrahman; 08.11.2017
comment
Отредактировано, чтобы объяснить, как это работает. Я не пользуюсь Google Spreadsheets, но он должен работать и там. - person Fernando J. Rivera; 08.11.2017
comment
Я только что попробовал, и это сработало в Google Sheets! Спасибо за отличное объяснение @Fernando :) Кстати, sumproduct() выполняет логическое И, так как бы мы сделали логическое ИЛИ? - person Muhammad Abdurrahman; 09.11.2017
comment
вы не выполняете И с СУММПРОИЗВ, вы делаете это с умножением массива (согласно теории вероятностей, вероятность A и B равна p(A)*p(B)). Итак, если предположить, что A и B взаимно независимы, то вероятность A OR B будет равна p(a)+p(b)-p(a)*p(b). В нашем примере это будет сделано с помощью: (((B:B-A:A)>=1)+(C:C="Y")-((B:B-A:A)>=1)*(C:C="Y")), поэтому ваша полная формула будет =SUMPRODUCT((((B:B-A:A)>=1)+(C:C="Y")-((B:B-A:A)>=1)*(C:C="Y"))*(B:B)) - person Fernando J. Rivera; 09.11.2017
comment
Ага, понятно. Спасибо за объяснение. :пальцы вверх: - person Muhammad Abdurrahman; 10.11.2017