EXCEL簡化函數與修正問題

2014-10-07 12:09 am
檔案連結:
http://www.FunP.Net/661163

1).簡化問題:
請問此函數還能再簡化嗎?越短越好!!
C3=
IF(B3="","",SUMPRODUCT((data!$A$3:$A$20=C$2)*(data!$D$3:$D$20=$B3),data!$F$3:$F$20)-SUMPRODUCT((data!$A$3:$A$20=C$2)*(data!$D$3:$D$20=$B3),data!$G$3:$G$20))

2).修正問題:
其中(data!$A$3:$A$20=C$2)裡面的 data!$A$3:$A$20 這個欄位是為了要轉換data!B(日期欄)用的文字欄。但我不想用這個文字欄,要如何將data!B欄(日期欄)直接加到上述的函數中?

謝謝!!
更新1:

cjw大師您好: 先感謝您熱心的回答^^ 您的解答在此檔案用是OK沒問題。 但我照這段函數套用到公司的報表上面,會出現錯誤#VALUE 因為公司的報表資料不適合上傳,因此做這份簡單的發問用檔案, 但它的格式編排跟公司的報表是差不多的。 所以我也想不透為什麼會套用失敗?是不是哪裡的數字需調整? 因此想再請教您,此段涵數的意思,煩請詳解!!感謝~ (--MID(data!$B$3:$B$20,6,2)=--LEFT(C$2,FIND("月",C$2)-1))

更新2:

cjw大師: 檔案連結: http://www.FunP.Net/339600 這份檔案與原始檔格式完全一樣 目前只有C3有套用此涵數 麻煩除錯了謝謝^^

更新3:

cjw、准提部林、Daniel各大師您好: 感謝你們提供不一樣的技巧, 這些參考做法通通都可以套用成功! 最後請cjw大師將答案移至回答區。 謝謝各位!!(•̀ᴗ•́)و ̑̑

回答 (4)

2014-10-08 12:01 am
✔ 最佳答案
C3=IF(B3="","",SUMPRODUCT((--MID(data!$B$3:$B$20,6,2)=--LEFT(C$2,FIND("月",C$2)-1))*(data!$D$3:$D$20=$B3),data!$F$3:$F$20-data!$G$3:$G$20))

下載地址
http://www.FunP.Net/209992

2014-10-06 16:44:54 補充:
001
IF(B3="","",...
改成IF($B3="","",

2014-10-06 21:35:48 補充:
TO版大:
因B欄是年與月的結合,如2012/02,為了取出2與月份做比對,所以利用文字函數mid(date!$B$3:$B$20,6,2)=>也可用 Right(date!$B$3:$B$20,2)取出02,因文字函數取出的數字為文字化數字,為將文字化的數字轉成數字,所以在Mid前加上--(負負)也就可以用函數Value(....)取代。
另--LEFT(C$2,FIND("月",C$2)-1)),為了將欄名中的月中的數字取出來比對,如2月取出2,取出的數字也是文字化,為了轉成數值所以加兩個負號。

2014-10-06 21:41:55 補充:
另請版大可不可以,將原始檔用複製的方式,複製一部分(將資料修改一下)要與原始檔格式完全一樣,再上傳一次。

2014-10-07 08:48:35 補充:
TO版大:
公式没有錯,只是date工作表中的收入及支出欄內空白處有不明資料,業已delete掉.版大再試看看

下載地址

http://www.FunP.Net/444946

2014-10-07 09:49:35 補充:
定義名稱:設定動態範圍(會隨範圍的增加而增加,不用再修改範圍),也可簡化公式!
<<參考檔>>下載地址
http://www.FunP.Net/276520

2014-10-07 16:01:36 補充:
定義名稱:設定動態範圍(會隨範圍的增加而增加,不用再修改範圍),也可簡化公式!
<<參考檔>>下載地址
http://www.FunP.Net/276520
定義名稱:設定動態範圍(會隨範圍的增加而增加,不用再修改範圍)插入/名稱/定義/現有名稱輸入"日期"/參照輸入以下公式/新增=OFFSET(data!$B$3,,,COUNTA(data!$B:$B)-1,) 同上步驟/名稱"項目"/公式=OFFSET(data!$D$3,,,COUNTA(data!$B:$B)-1) 同上步驟/名稱"收入"/公式=OFFSET(data!$E$3,,,COUNTA(data!$B:$B)-1) 同上步驟/名稱"支出"/公式=OFFSET(data!$F$3,,,COUNTA(data!$B:$B)-1) 將C3公式改成=IF($B3="","",SUMPRODUCT((--MID(日期,6,2)=--LEFT(C$2,FIND("月",C$2)-1))*(項目=$B3),收入-支出))右拉下刷准大公式更簡節=IF(B3="","",SUMPRODUCT((TEXT(data!$B$3:$B$28&1,"[=1]A;m月")=C$2)*(data!$D$3:$D$28=$B3)*{1,-1},data!$F$3:$G$28))
2014-10-07 5:58 pm
=IF(B3="","",SUMPRODUCT((TEXT(data!$B$3:$B$28&1,"[=1]A;m月")=C$2)*(data!$D$3:$D$28=$B3)*{1,-1},data!$F$3:$G$28))

沒空作答, 給個參考
2014-10-07 5:17 pm
C3:
=IF(B3="","",SUMPRODUCT((data!$A$3:$A$20=C$2)*(data!$D$3:$D$20=$B3)*(data!$F$3:$F$20-data!$G$3:$G$20)))

2014-10-07 09:18:58 補充:
再短一點:
=IF(B3="","",SUMPRODUCT((data!$A$3:$A$20=C$2)*(data!$D$3:$D$20=$B3),data!$F$3:$F$20-data!$G$3:$G$20))

2014-10-07 09:21:27 補充:
如果想要再縮短的話,可設定名稱,以取代每一欄

2014-10-07 10:45:59 補充:
參考做法:
1.儲存格C2~N2格式改為自訂 0"月" ,然後直接輸入數字。
2.C3~N17公式:
=IF($B3="","",SUMPRODUCT((--MID(data!$B$3:$B$88,6,2)=C$2)*(data!$D$3:$D$88=$B3),data!$E$3:$E$88-data!$F$3:$F$88))

如附件:
http://www.funp.net/856842


第2個工作表為設定名稱的做法,此時資料增加時,公式不需要改變
2014-10-07 3:21 am
cjw大師您好:
先感謝您熱心的回答^^

您的解答在此檔案用是OK沒問題。
但我照這段函數套用到公司的報表上面,會出現錯誤#VALUE
因為公司的報表資料不適合上傳,因此做這份簡單的發問用檔案,
但它的格式編排跟公司的報表是差不多的。
所以我也想不透為什麼會套用失敗?是不是哪裡的數字需調整?

因此想再請教您,此段涵數的意思,煩請詳解!!感謝~
(--MID(data!$B$3:$B$20,6,2)=--LEFT(C$2,FIND("月",C$2)-1))

2014-10-06 22:33:42 補充:
cjw大師:

檔案連結:
http://www.FunP.Net/339600
這份檔案與原始檔格式完全一樣
目前只有C3有套用此涵數

麻煩除錯了謝謝^^

2014-10-07 14:52:46 補充:
cjw、准提部林、Daniel各大師您好:
感謝你們提供不一樣的技巧,
這些參考做法通通都可以套用成功!
最後請cjw大師將答案移至回答區。
謝謝各位 (•̀ᴗ•́)و ̑̑


收錄日期: 2021-04-27 21:29:30
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20141006000010KK04626

檢視 Wayback Machine 備份