2010-07-11 57 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