2010-07-11 58 views
1

我需要帮助才能在MS Excel工作表中执行以下功能。片材的例子如下需要以下函数的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. 其中“UsedBy”列单元格包含两个实体且“He1”必须是一个实体的列“Amount”列的单元格之和。在此和之后将其除以2.假设结果是Y.
  3. 其中“UsedBy”列单元格包含三个实体并且“He1”必须是一个实体的列“Amount”列的单元格之和。在这之后和devide它由3比方说,结果为Z
  4. 合计结果的步骤1,2和3。这意味着X + Y + Z的总和

请让我知道,如果我不清楚在我的问题....

+0

我不知道的Excel,但我建议你接近这个从加总“数量除以UsedBy中的逗号数加1”的方面来看,对于包含He1的UsedBy行。 – 2010-07-11 17:49:04

回答

0

构建等的值的数量的一些中间结果在UsedBy,或者是否包含UsedByHE1在单独的列,然后使用SUMIF()

0

除非您自己写入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