English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

您好 我想請問一個公式的內容如下:

C4=IF(ISNA(VLOOKUP(A4,累計試算表,4,FALSE)),0,IF(VLOOKUP(A4,累計試算表,4,FALSE)<>0,-VLOOKUP(A4,累計試算表,4,FALSE),VLOOKUP(A4,累計試算表,5,FALSE)))

以上的公式來自一本EXCEL2003會計財務實務應用的書,我想請問的問題是:
該公式的內容資料是怎麼來的(因為我實際的表格和該範例資料有些許不同,我以為把數字更改了就ok,卻都得不到想要的資料)

麻煩知道的人幫我解答,謝謝

2007-01-22 15:30:32 · 2 個解答 · 發問者 ? 1 in 電腦與網際網路 軟體

謝謝兩位熱心的解說....但是我好像笨笨的還是不懂
我可不可以寄該資料請您們幫我看一下....我應該怎麼輸入才好呢
謝謝

2007-01-24 16:01:17 · update #1

2 個解答

小弟先依你ㄉ公式ㄉ函數來說明:
ISNA:Value 指的是錯誤值 #N/A (無法使用的數值)。
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
Lookup_value:在表格陣列的第一欄中搜尋的數值Lookup_value 可以是數值,也可以是參照位址。當 lookup_value 小於 table_array 第一欄中的最小值時,VLOOKUP 將會傳回錯誤值 #N/A。
Table_array:兩欄以上的資料。請使用參照位址來指向某個範圍或範圍名稱。table_array 第一欄中的值即為 lookup_value 所搜尋的值。這些值可以是文字、數字或邏輯值 (不分大小寫)。
Col_index_num:table_array 中的欄號;相符的值將從該欄中傳回。如果 col_index_num 引數值為 1,則傳回 table_array 第一欄中的值;如果 col_index_num 引數值為 2,則傳回 table_array 第二欄中的值,依此類推。如果 col_index_num:

圖片參考:http://tw.knowledge.yahoo.com/question/PicExportError
小於 1,則 VLOOKUP 會傳回錯誤值 #VALUE!。

圖片參考:http://tw.knowledge.yahoo.com/question/PicExportError
大於 table_array 中的欄數,則 VLOOKUP 會傳回錯誤值 #REF!。
Range_lookup:一個邏輯值,用來指定 VLOOKUP 應該要尋找完全符合還是部分符合的值:

圖片參考:http://tw.knowledge.yahoo.com/question/PicExportError
如果此引數值為 TRUE 或被省略了,則傳回完全符合或部分符合的值。如果找不到完全符合的值,將會傳回僅次於 lookup_value 的值。
table_array 第一欄中的值必須以遞增順序排序;否則,VLOOKUP 可能無法提供正確的值。只要在 [資料] 功能表中選取 [排序] 指令,再選取 [遞增],即可將值以遞增順序排序。如需詳細資訊,請參閱預設排序順序。


圖片參考:http://tw.knowledge.yahoo.com/question/PicExportError
如果此引數值為 FALSE,則 VLOOKUP 函數只會尋找完全符合的值。在此情況下,table_array 第一欄中的值便不需要排序。如果 table_array 第一欄中有兩個以上的值與 lookup_value 相符,將會使用第一個找到的值。如果找不到完全符合的值,則傳回錯誤值 #N/A。

由上面函數說明來看
A4為【Lookup_value】:即你要指定在表格陣列的第一欄中搜尋的數值
累計試算表為【Table_array】:指向某個範圍或範圍名稱,但你所輸入ㄉ不是儲存格範圍,所以他應該代表ㄉ是一個已定義ㄉ名稱
4或是5為【col_index_num】table_array 中的欄號,相符的值將從該欄中傳回。表示你要傳回符合A4條件後往又推算第4或是第5欄位ㄉ值
FALSE為【Range_lookup】一個邏輯值,用來指定 VLOOKUP 應該要尋找完全符合的值
“把數字更改了就ok,卻都得不到想要的資料”
先請問你傳回ㄉ資料是欄位不準,還是傳回ㄉ值是列而不是欄
如果欄位不準,你只要再去跟改數字即可
如果傳回ㄉ值是列而不是欄,那你需要將”VLOOKUP”這個函數改成”HLOOKUP”即可
但如果不是,有可能是你所定義ㄉ累計試算表範圍有誤,請重新確認你ㄉ範圍
關於”VLOOKUP”、”HLOOKUP”還有定義名稱你可以去小弟ㄉ部落格看看,裡面有範例可以供你參考

希望能幫助你^^

圖片參考:http://img59.imageshack.us/img59/7316/hqp7.gif

如還有其他問題,可以點小弟ㄉ資料去看看,裡面有很多類似ㄉ問題供你參考

2007-01-22 18:09:24 · answer #1 · answered by ~無止盡ㄉ等待與傷害~ 6 · 0 0

[累計試算表]是所指定的儲存格區之範圍名稱。

ISNA 函數為檢驗引數值是否爲錯誤值 #N/A (找不到適合之值時)。

VLOOKUP(A4,累計試算表,4,FALSE) 函數是在儲存格區 [累計試算表] 之範圍內的第一欄中尋找儲存格 A4 之值,找到時,就會回傳所找到的那一列中第 4 個欄位的值;找不到時,則回傳錯誤值 #N/A 。其中,FALSE 表示要找與儲存格 A4 完全一樣之值 ( TRUE 表示找最接近儲存格 A4 之值即可 )

所以,對此公式之說明如下:

如果(IF),

「在儲存格區 [累計試算表] 之範圍內的第一欄中尋找儲存格 A4
之值,找到時,就會回傳所找到的那一列中第 4 個欄位之值」

此一步驟之回傳值爲錯誤值 #N/A ( 即在儲存格區 [累計試算表] 之範圍內的第一欄中找不到與儲存格 A4 完全一樣之值 ),

則儲存格 C4 填入 0 ;

若此一步驟之回傳值不為 0 ( <>0 ),

則儲存格 C4 填入該值之負值;

若此一步驟之回傳值為 0 ( <>0 之相反),

則儲存格 C4 填入所找到的那一列中第 5 個欄位之值。

2007-01-22 19:21:04 · answer #2 · answered by Charles 2 · 0 0

fedest.com, questions and answers