2015-09-21 3 views
0

У меня есть некоторые данные в Excel, как это:Looping формулу над полем

| id | categorie | number | 
| 1 |  a  | 123 | 
| 2 |  b  | 23  | 
| 3 |  c  | 65  | 
| 4 |  b  | 102 | 
| 3 |  d  | 65  | 
| 4 |  e  | 102 | 
| .. |  ... | ... | 

и я создаю отчет, в котором говорится:

| categories   | Sum | 
|  a    | 123 | 
| b;c    | 190 | 
| many categories | ... | 

Как я, может, используя формулу , цикл и раскол по значениям ячейки для вычисления суммы?

+0

Вы будете печатать первый столбец отчета? Или вы ожидаете, что формулы будут создавать обе колонки? –

+0

я бы печатая категории я хочу в докладе, позволяет сказать цв 1: а и col2: Ьс и col3: а; с; е – user1342645

+0

столбцов или строк и 'c' категории двойного учета? ? – pnuts

ответ

1

Вы не можете «петлировать» в Excel без использования VBA; однако «цикл» не совсем то, что вам нужно.

Формула SUMIFS имеет аргументы:

=SUMIFS(SUM_Range,CRITERIA1_Range,CRITERIA1,CRITERIA2_Range,CRITERIA2...) 

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

т.е.

=SUMIFS(C:C,B:B,"a") 

Это даст вам общее из столбца C, где столбец B для этой строки соответствует «а». Предположим, что «a» находится в ячейке D1, а все остальные члены ниже. Вы можете перепечатывать следующим образом, и перетащить вниз:

=SUMIFS(C:C,B:B,D1) 

Обратите внимание, что у вас есть несколько терминов в области поиска - Я советую вам разделить те на отдельные строки; это облегчит вашу жизнь. Добавьте их вместе, если вам нужно.

1

Добавить новый столбец в таблицы, которые определяют, как группируются категории:

| id | categorie | number | group 
| 1 |  a  | 123 | 1 
| 2 |  b  | 23  | 2 
| 3 |  c  | 65  | 2 
| 4 |  b  | 102 | 3 
| 3 |  d  | 65  | 3 
| 4 |  e  | 102 | 3 
| .. |  ... | ... | 4 

и

| categories   | Sum | Group 
|  a    | 123 | 1 
| b;c    | 190 | 2 
| many categories | ... | 3 

чем использовать SUMIF:

SUMIF (диапазон, критерии, [ sum_range])

В вашем случае это будет:

SUMIF(GROUPCOLUMN, "=THATLINEGROUPCELL", NUMBERCOLUMN) 
-1

Я буду называть ваши столбцы (игнорируя ID) A и B и строки данных начинаются с 2 и перейти к строке 7. И так как я предполагаю, что вы хотите таблица, в которой вы можете просто перетащить вниз формулу в то время как ссылки на категории, которые являются, б, в ... скажем, эти ярлыки начинаются в А10 (ниже):

в ячейке B10 =SUMIF($A$2:$A$7,"<="&A10,$B$2:$B$7) затем просто перетащить его вниз ваши метки (и, очевидно, изменить ссылку по мере необходимости)

Для комбинаций просто введите sumif() + sumif().

Я собирался предложить массив sumproduct, но это довольно легко.

1

Это формульное решение.

Предположим, вы набираете категории, которые хотите суммировать в ячейке F2.Например, вы вводите F2: a;b

Тогда в G2, введите следующую формулу:

=SUM(C2:C7*IFERROR(B2:B7=MID(F2,COLUMN(OFFSET($A$1,,,,LEN(F2))),1),0)) 

Это формула массива и должна быть подтверждена с Ctrl + Сдвиг + Введите ,

Вы должны скорректировать ссылки на B2:B7 и C2:C7 в соответствии с вашим исходным кодом.

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

+0

Пожалуйста, дайте мне знать, если это то, что вы имели в виду. –

+0

Очень интересно - я никогда не видел этого использования COLUMN (OFFSET .... для создания массива нумерованных результатов. –

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