Нужна формула Excel для следующей функции

Мне нужна помощь, чтобы выполнить следующую функцию на листе MS Excel. Пример листа выглядит следующим образом

       A              B         C          D              E 
1     TimeStamp       Name     Amount     UsedBy        Description
     -----------------------------------------------------------
2     Date1           Me1       200       He1,She1        desc1
3     Date2           Me1       100       Me1,He1         desc2
4     Date3          She1        50       He1,She1,Me1    desc3
5     Date4           He1        70       She1,He1        desc4
6     Date5          She1       200       She1,He1,Me1    desc5
7     Date6           Me1        22       He1             desc6

Мне нужна какая-то функция, которая может выполнять следующую последовательность задач в одной настраиваемой формуле MS-Excel

  1. Суммируйте ячейки столбца Amount, где ячейки столбца UsedBy содержат He1 как единое целое. Допустим, результат - X
  2. Сумма ячеек столбца «Amount», где ячейки столбца «UsedBy» содержат две сущности, а «He1» должен быть одной сущностью. После этой суммы разделите ее на 2. Допустим, результат Y.
  3. Сумма ячеек столбца «Amount», где ячейки столбца «UsedBy» содержат три объекта, а «He1» должен быть одним объектом. После этой суммы разделите ее на 3. Допустим, результат Z
  4. Суммируйте результат на этапах 1, 2 и 3. Это означает сумму X + Y + Z.

Пожалуйста, дайте мне знать, если я не совсем ясен в своем вопросе ...


person Surjya Narayana Padhi    schedule 11.07.2010    source источник
comment
Я не знаю Excel, но я бы посоветовал вам подойти к этому с точки зрения суммирования Amount, деленного на количество запятых в UsedBy плюс 1 для тех строк UsedBy, содержащих He1.   -  person Will A    schedule 11.07.2010


Ответы (3)


Попробуйте воспользоваться функцией СУММЕСЛИ.

person buckbova    schedule 11.07.2010

Постройте некоторые промежуточные результаты, такие как количество значений в UsedBy или то, содержит ли UsedBy He1 в отдельных столбцах, затем используйте SUMIF().

person Mau    schedule 11.07.2010

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

Вам понадобится 3 вспомогательных столбца, по 1 для каждого критерия.

Для вашего первого предположим, что вы поместили его в столбец F

=if(and(isnumber(search("He1",D2)),len(d2)=len(substitute(d2,",",""))),1,0)

Это гарантирует, что D2 содержит «He1» и что нет запятых.

Для вашего второго поместите его в столбец G

=if(and(isnumber(search("He1",D2)),len(d2)-1=len(substitute(d2,",",""))),1,0)

Это гарантирует, что D2 содержит «He1» и одну запятую.

Для вашего третьего поместите его в столбец H

=if(and(isnumber(search("He1",D2)),len(d2)-2=len(substitute(d2,",",""))),1,0)

Это гарантирует, что D2 содержит «He1» и две запятые.

Когда у вас есть столбцы вспомогательных критериев, вы можете сделать sumif для каждого критерия.

Для X вы сделаете =sumif(f2:f7,1,c2:c7)

Для Y вы сделаете =sumif(g2:g7,1,c2:c7)/2

Для Z вы сделаете =sumif(h2:h7,1,c2:c7)/3

person Dean MacGregor    schedule 06.06.2015