2013-09-11 2 views
1

Я пытаюсь сказать Excel изменить ссылку на ячейку для формулы SUMIF на основе последней ячейки, которая содержит значение в каждой строке. Прямо сейчас, я знаю, что могу написать вложенное выражение if, чтобы сделать это для меня, но это слишком громоздко, чтобы быть долгосрочным решением.Изменение ссылки на ячейку для критерия SUMIF?

Пример:

В отдельном докладе, каждый человек в этом списке есть несколько строк записи их ежедневных продаж. В небольшом масштабе я просто напишу SUMIF, который использует для A2, B3 и C4 критерии. Масштаб намного больше, поэтому мое текущее решение состоит в том, чтобы выписать логическую проверку с формулой SUMIF, сложенной в нее.

В этом случае формула в Е2 будет:

= ЕСЛИ (С2 = "", если (В2 = "", SUMIF ('Диапазон', А2, 'диапазон'), SUMIF ('диапазон', B2, 'диапазон')), SUMIF ('диапазон', C2 'диапазон'))

есть ли другой способ сказать Excel запустить SUMIF с последним значением, найденным в каждый ряд?

Я надеялся, что могу использовать COUNTA для каждой строки, а затем формулу SUMIF использовать значение COUNTA для изменения ссылки на ячейку критерия. Мне что-то не хватает.

ответ

2

= SUMIF ('Диапазон', INDEX (A2: C2, MATCH ("ZZZZZ", A2: C2)), 'диапазон')

кажется, стоит попробовать.

Edit Слишком долго комментарий:

Я действительно не имею ни малейшего представления, как = MATCH() работает, но думать об этом как пересекающих слева направо во время поиска. Когда он не находит совпадение, он просто смотрит на последнюю запись и (удобно!) Предлагает это. Итак, ключ должен искать что-то, что не будет найдено.

Для имен людей я выбрал «zzzzz» как вряд ли присутствовать. Для чисел теоретически возможно 999999999999999E + 307, и поэтому некоторые люди используют это (например, час назад Formula to get the first cell with a numerical value from a selection?), но я предпочитаю googol (1E + 100) и кажется довольно большим, намного короче - и легче запомнить , даже если несколько 9 s более или менее не будут иметь никакого значения, и, вероятно, какая пара целых чисел после +.

+1

Это работает, и я понятия не имею, как это сделать. Не могли бы вы объяснить, как функция соответствия влияет на то, какая ячейка просматривается? Спасибо, кстати, это здорово. – playerpiano

+1

Вы также можете использовать подход LOOKUP для текста, например. '= LOOKUP (« zzzz », A2: C2)' - нормальный эквивалент «bignum» 9.99999999999999E + 307 - «bigtext» = REPT («z», 255), но часто бывает «zzzz» –

+2

Причина, по которой любой из этих работ является «причудой» превосходства. в LOOKUP или MATCH/VLOOKUP с TRUE/1/пропущенным последним аргументом excel использует «двоичный поиск», например. с = LOOKUP (100, A1: Y1) excel ожидает, что A1: Y1 будет сортироваться по возрастанию - из-за этого он может посмотреть среднее значение, то есть M1 и посмотреть, есть ли оно> 100 или нет - если это так, он может отбросить последние значения , если нет, то он может отбросить значения A1: L1, поэтому LOOKUP выполняется быстро, потому что ему нужно только изучить ограниченное количество значений .....но что «трюки» функции всегда возвращают последнее значение, когда значение поиска не найдено ....... –

Смежные вопросы