2016-02-21 6 views
2

Мне нужно создать формулу в excel, которая возвращает сумму произведения двух столбцов в диапазоне, на основе значения больше значения. В частности, если любая строка в столбце E является заданным числом, а любая строка в столбце H равна> 0, умножьте столбец F и G и суммируйте эти произведения. Excel дает мне значение 0 с формулой ниже, но я хочу, чтобы дать мне 225.SUMPRODUCT, если два условия

=IF(AND(shipping_logs!H2:H999999>0,shipping_logs!E2:E998940="395078"), 
(SUMPRODUCT(shipping_logs!F2:F999999,shipping_logs!G2:G999999)),0) 

Колонка G и H могут иметь отрицательные значения, поэтому формула должна максимально на 0. Если сумма продуктов имеет отрицательное значение, я хочу, чтобы дать мне 0, но я не уверен, что я делаю неправильно ..

enter image description here

+0

Вы действительно собираетесь бежать [SUMPRODUCT] (https://support.office.com/en-us/article/sumproduct-function-4e0bffa7 -4291-4635-a61f-6aa9399e7ff) через почти миллион строк данных? Насколько велики ваши фактические данные? – Jeeped

ответ

0

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

= ЕСЛИ (И (shipping_logs H2: H999999> 0, (СЧЕТЕСЛИ (shipping_logs E2: E998940,395078)), (SUMPRODUCT (shipping_logs F2:! F999999, shipping_logs G2: G999999)), 0)

= ЕСЛИ (И (shipping_logs H2: H999999> 0, (ISNUMBER (MATCH (395078, shipping_logs E2: E998940))), (SUMPRODUCT (shipping_logs F2:! F999999, shipping_logs G2: G999999)) , 0)

2

Вы хотите использовать только минимальное количество строк, возможных с SUMPRODUCT function. это делает формулу выглядеть сложными, но это не так на самом деле.

Выберите один из важных столбцов, желательно с цифрами. Будет либо столбец F, либо G. Для того, чтобы найти последнюю строку, содержащую номер, который вы можете использовать,

=MATCH(1e99, F:F) 

Даже если есть что-то под последним номером, это не важно, так как мы только хотим цифры.

Ваша SUMPRODUCT формула теперь,

=SUMPRODUCT((sl!E2:INDEX(sl!E:E, MATCH(1E+99, sl!F:F))=395078)* 
      (sl!G2:INDEX(sl!G:G, MATCH(1E+99, sl!F:F))>0)* 
      (sl!H2:INDEX(sl!H:H, MATCH(1E+99, sl!F:F))>0), 
      sl!F2:INDEX(sl!F:F, MATCH(1E+99, sl!F:F)), 
      sl!G2:INDEX(sl!G:G, MATCH(1E+99, sl!F:F))) 

приблизительная было бы предположить, что формула будет вызывать заметное отставание расчета, если диапазоны ячеек превышает 2-3 тыс.

+0

ОК. вещь, мне все еще нужна клетка, чтобы показать значение 225. – larry

+1

Боюсь, я не вижу, как 225 вписывается в схему вещей, не видя данных образца. – Jeeped

+0

Извините, мне следовало разместить изображение в моем оригинальном посте. Я добавил скриншот. – larry

0

Вот альтернатива я работал на:

=SUMPRODUCT(shipping_logs!F2:INDEX(shipping_logs!F:F,COUNTA(shipping_logs!F:F)), 
      shipping_logs!G2:INDEX(shipping_logs!G:G,COUNTA(shipping_logs!G:G)), 
      --(shipping_logs!E2:INDEX(shipping_logs!E:E,COUNTA(shipping_logs!E:E))=395078), 
      --(shipping_logs!H2:INDEX(shipping_logs!H:H,COUNTA(shipping_logs!H:H))>0)) 
Смежные вопросы