- 帖子
- 186
- 主題
- 6
- 精華
- 0
- 積分
- 218
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office 2007
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2012-11-12
- 最後登錄
- 2014-4-15
|
[發問] if函數(陣列形式)如何一次判別多個條件?
我正在試圖以公式來處理我們公司的會計帳,目前遇到一個問題:
總分類帳測試這個工作表的項目如下:
A欄 B欄
日期 科目
目前這個工作表,我寫了以下這個公式,是要用在下表中的B欄
科目:購置費
A欄 B欄 C欄 D欄 E欄
月 日 科目 明細 金額
這個工作表中的B2會輸入希望的月份,目的是要列出所有的「某個月的某個科目」的日期
{=IFERROR(DAY(INDEX(總分類帳測試!A:A,SMALL(IF(IFERROR(MONTH(總分類帳測試!$A$1:$A$9999),"")=$B$2,IF(總分類帳測試!$B$1:$B$9999="購置費",ROW(日記帳!$A$1:$A$9999),""),""),ROW(A1)))),"")}
運作起來都沒有問題
現在發生的問題是:因為我需要在excel 2003使用這個文件,但是excel 2003沒有iferror這個公式,因此需要改寫成if(iserror(),"",...)的型式,但是這樣改的話會變得太多層,excel無法接受
因此我希望將月份正確:IFERROR(MONTH(總分類帳測試!$A$1:$A$9999),"")=$B$2;以及科目正確:總分類帳測試!$B$1:$B$9999="購置費" 這兩件事情放到同一層裡面,希望將原本的
IF(IFERROR(MONTH(總分類帳測試!$A$1:$A$9999),"")=$B$2,IF(總分類帳測試!$B$1:$B$9999="購置費",ROW(日記帳!$A$1:$A$9999),""),"")
變為
IF(AND(IFERROR(MONTH(總分類帳測試!$A$1:$A$9999),"")=$B$2, 總分類帳測試!$B$1:$B$9999="購置費"),ROW(日記帳!$A$1:$A$9999),""),這樣就可以減少一層
然後再把IFERROR改成if(iserror(),"",...),層數剛剛好夠用
但是我在使用這個改變的函數的時候,資料就會跑掉,不知道是怎麼回事,想請大家幫我看一下,謝謝 |
|