Нужна формула Excel для следующей функции - PullRequest
1 голос
/ 11 июля 2010

Мне нужна помощь для выполнения следующей функции в листе 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. Суммирование ячеек столбца "Сумма "где ячейки столбца" UsedBy "содержат" He1 "как единый объект.Допустим, результат равен X
  2. Сумма ячеек столбца «Сумма», где ячейки столбца «Используется» содержат две сущности, а «He1» должен быть одной сущностью.После этой суммы разделите ее на 2. Допустим, результат равен Y.
  3. Сумма ячеек столбца «Сумма», где ячейки столбца «Используемые» содержат три объекта, а «He1» должен быть одним объектом.После этой суммы разделите ее на 3. Допустим, результат равен Z
  4. Суммируйте результат в шагах 1,2 и 3. Это означает сумму X + Y + Z

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

Ответы [ 3 ]

4 голосов
/ 11 июля 2010

Попробуйте функцию SUMIF .

0 голосов
/ 06 июня 2015

Вы не можете сделать это в одной формуле, если сами не напишите в 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' и гарантирует, что есть 1 запятая.

Для вашеготретий - в столбце H

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

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

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

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

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

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

0 голосов
/ 11 июля 2010

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

...