Excel 公式一問

2012-11-22 7:23 am
我有一個Excel表,A1至I1也有資料:
A1輸入DD
B1輸入DE
C1輸入DD
D1輸入DG
E1輸入DE
F1輸入D*
G1輸入DG
H1輸入D*
I1輸入DD
DD代表8,D*代表8,DE代表4,DG代表4
以上加總為:56
1.可有公式做到自動計算A1至I1的總和
2.另要計算DD,D*,DE,DG,各自出現過多少次,我用公式=COUNTIF(A1:I1,"D*")時會連DD也計算在內,有否方法可將DD及D*分開計算出現次數呢。
各路高手請帮帮忙,謝謝!!
更新1:

謝謝你的意見!! 但我的表格有機會出現D和D* 而D和D*同屬一個個體 如果用=COUNTIF(A1:I1,"D~*")只計算到D*不能時計算D, (計算項目時只能填寫D出現的次數, 不能多加一項D*出現的次數,所以D*是計算在D項目內) 那麼公式是什麼寫呢!! 請再次帮帮忙,謝謝!!

更新2:

另外何以解釋問題1的公式嗎? 如6+1、///// 是什麼意思呢? 感謝你。

更新3:

首先多謝你再次給予意見 其實問題1.我的表格有很多代碼, 以下都是我要用到的代碼,(之前以為公式很簡單,所以(求期)寫了一些代碼) D1,D1*,D-1,D1h,D3,D3*,D-3,A1,A1*,A-1,P2,P2*,P-2,CL,CS,AL,SL,D2,D-2,D2* 全部= 8 D4,D-4,P4,P-4,P3,P-3,A3,A-3,CL 0.5,SL 0.5,AL 0.5,S,S*, 全部= 4 公式是否很複雜, 往後如有新的代碼時要怎樣加在公式內? 所以我想了解公式方便日後使用。 謝謝!!

更新4:

忘記說清楚,我的表格每一列都會由A1-AM1、A2-AM2 如此類推.....A20-AM20 之後計算每一列的數字

更新5:

那麼我應該怎樣做, 請指點,謝謝!!

更新6:

(用一張worksheet, 將所有代碼做一個表, 公式祇須輸入該表的地址, 日後如有增刪代碼, 更改該表的紀錄便可以, 無須更改公式) 這幾句不太明白,公式又應該怎麼寫, 請教教我,謝謝!!

更新7:

問題已順利解決,多謝各位的帮忙, 感激不盡,謝謝!!謝謝!!

回答 (3)

2012-11-23 8:18 am
✔ 最佳答案
問題1.可有公式做到自動計算A1至I1的總和
如果你懂得使用array formula,那麼一條公式便可以得到答案,公式如下:

{=SUM(IF(A1:I1="DD",8,IF(A1:I1="D*",8,IF(A1:I1="DE",4,IF(A1:I1="DG",4,0)))))}

上面公式是一條array formula,不能單純copy and paste,請用array formula的方法輸入,如不懂得輸入array formula,請參考Excel 書籍。

2.另要計算DD,D*,DE,DG,各自出現過多少次,我用公式=COUNTIF(A1:I1,"D*")時會連DD也計算在內,有否方法可將DD及D*分開計算出現次數呢。
=Countif(A1:I1, "D*") - Countif(A1:I1,"DD")
2012-11-24 11:06 pm
010

可試試用 Sumproduct

=SUMPRODUCT((D2:Q2=A$2:A$34)*(B$2:B$34))
2012-11-22 10:05 pm
題1, 公式較複雜, 如A1:I1內有可能有空格/數字或其他文字, 就更加複雜, 可能要一條很長的陣列公式
題2, *號前面加~便可以
=COUNTIF(A1:I1,"D~*")

2012-11-22 15:12:20 補充:
題1:
=SUMPRODUCT(--MID("0480",INT(FIND(A1:I1,"/////DE/DG/DD/D*/"&A1:I1)/6+1),1))
空白格或其他內容, 以0計算

2012-11-22 21:56:21 補充:
Countif 的第2個引數, 無法判斷 D而忽略 DD 或DA, DB, AD, DDD等, 故應改用sumproduct
=sumproduct((A1:I1="D")*1)
=sumproduct((A1:I1="DD")*1)
=sumproduct((A1:I1="D*")*1)

2012-11-22 22:22:10 補充:
在解釋題1的公式前, 發問者請先確認公式是否已合乎要求, 如先解釋, 之後再改公式, 帖子的內容便會很亂

2012-11-22 22:32:13 補充:
先給你簡單思路:
前面的/////是攝位用途, 後面的/是分隔用途, 用什麼字符都可以, 如 "人", "Z", "$"都可以, 但一定是永不會在A1:I1出現
/6代表除以6
+1就是加1
-- (兩個減號)是將文字數字激活成可計算的數字, 用1*都可以

2012-11-22 22:37:36 補充:
如 "D" 和 "D*" 視作相同, 一併計算, 公式是:
=SUMPRODUCT((A1:I1="D")+(A1:I1="D*"))

2012-11-23 15:34:53 補充:
如36個或更多的代碼都放在公式內, 不是難, 而是煩及公式很長, 如用if, 更加會超過If的層數限制(最多是8層), 必須用其他思路及函數去編寫公式, 建議文件內用一張worksheet, 將所有代碼做一個表, 公式祇須輸入該表的地址, 日後如有增刪代碼, 更改該表的紀錄便可以, 無須更改公式

2012-11-24 01:12:27 補充:
http://www.FunP.Net/735687
請測試以上檔案, 如有回應, 續答

2012-11-24 11:11:34 補充:
008的文件, 請參考 code list工作表, main 的工作表是我的草稿, 較亂
就算代碼有幾百個, 並代表不同的數值, 都冇問題

2012-11-24 11:25:46 補充:
008的陣列公式 =Sum(sumif(....
剛才進一步測試, 發覺未能解決 * 的問題, 頭痕!

2012-11-24 23:06:46 補充:
Andy的公式可行, 此式我之前已想到, 奈可用Vlookup求證A1:AM1時, 發覺不對, 原來又是*號作怪影響Vlookup
sumproduct不受*號影響, 亦不用陣列公式輸入,
都忘記了原來Vlookup是接受萬用字 *號 和 ?號, 上了寶貴的一課


收錄日期: 2021-04-24 10:39:36
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20121121000051KK00449

檢視 Wayback Machine 備份