標題:
[發問]
if函數(陣列形式)如何一次判別多個條件?
[打印本頁]
作者:
Bodhidharma
時間:
2013-1-6 22:14
標題:
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(),"",...),層數剛剛好夠用
但是我在使用這個改變的函數的時候,資料就會跑掉,不知道是怎麼回事,想請大家幫我看一下,謝謝
作者:
freeffly
時間:
2013-1-14 11:31
回復
1#
Bodhidharma
論壇的高手都會希望問問題時附上檔案
如果檔案有不可告人秘密
就把公司名稱拿掉
相關人名部門拿掉
至少附上一點點例子
這樣他們會比較容易幫忙
作者:
小華
時間:
2013-1-14 19:33
判斷多條件的話試試看用"SUMPRODUCT"這個函數
作者:
Hsieh
時間:
2013-1-14 23:00
回復
1#
Bodhidharma
如圖
I2陣列公式
=IF(ROW(A1)>SUMPRODUCT(($A$2:$A$8=$G$2)*($C$2:$C$8=$H$2)),"",INDIRECT("B"&SMALL(IF(($A$2:$A$8=$G$2)*($C$2:$C$8=$H$2),ROW($2:$8),""),ROW(A1))))
[attach]13931[/attach]
作者:
Bodhidharma
時間:
2013-2-25 14:25
回復
4#
Hsieh
啊,原來用if((符合條系件A)*(符合條件B),......)即可,非常感謝!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)