Board logo

標題: [發問] 請幫我說明這個MATCH函數的意義 [打印本頁]

作者: CyaTu    時間: 2012-6-29 09:42     標題: 請幫我說明這個MATCH函數的意義

本帖最後由 CyaTu 於 2012-6-29 11:27 編輯

我在這個部落格上看到他的教學附件,便想學著做
http://www.wretch.cc/blog/HUNGCHILIN/10258332

[attach]11529[/attach]

但請問定義名稱的NO,其中
MATCH(2,1/(DATABASE!$A$1:$A$8<>"")) -1
是什麼意思呢?
為何lookup_value要尋找2
lookup_array的部分變成倒數的原因我也不明白,能否指點一下,感謝感謝!
作者: ANGELA    時間: 2012-6-29 10:18

MATCH(2,1/(DATABASE!$A$1:$A$8 ))
這裡的2 不代表任何意義,只要是大於1的數字都成立
1除於任何數都小於等於1,所以一定找不到等於2的值,所以它會一直找到最後一個數值
這公式主要找A1到A8中含有數字的最後位置,並傳回它的位置
以上定義的名稱的目的於下列公式目的相同
=LOOKUP(2,1/(A1:A8),ROW(A1:A8))
作者: CyaTu    時間: 2012-6-29 11:26

感謝版主的說明,
原來就是要找不到,這樣我懂了。
我原先文章的附件似乎沒有夾帶好,所以又再傳了一次,
因為範例中的MATCH函數後面,似乎有設一個不等於空白的條件,
我猜目的是讓清單增加的時候,可以自動一直抓最後一格。

但我將這個功能轉為橫式的時候卻一直不成功,連值都回傳不了,會出現N/A。
能否幫我看看哪出錯了呢?
檔案:
[attach]11530[/attach]

我的需求有兩個
1.H25可以正確的算出從D2→H2,有多少格的值
2.當清單向右延伸的時候,例如增加一欄,公式可以自動把H2變為I2
作者: ANGELA    時間: 2012-6-29 11:43

1,這裡不可以用精確查找,參數,0要去掉。
2=MATCH(2,1/(DATA!$C$2:$AV$2<>""))已可適用到AV2,
作者: CyaTu    時間: 2012-6-29 11:57

[attach]11531[/attach]

版主,刪除0了還是NA耶。
我的公式是否哪裡有錯誤?

另外公式自動抓最後一欄的問題,我發現
如果在H欄之前用插入欄位,公式就可以判斷
但如果是把清單那個藍藍的框,往右拉自動多出一欄,公式就無法隨之更新了。

但原本的教學檔案似乎都是OK的。
作者: ANGELA    時間: 2012-6-29 12:24

這是陣列公式若不是用在名稱中,在儲存格中公式要用ctrl+shift+enter輸入
作者: isqueen    時間: 2012-6-29 23:14

可使用工具>公式稽核>評估值公式,查看整個陣列試算過程的變化。
作者: CyaTu    時間: 2012-7-2 15:56

也是MATCH函數的問題,

我仿照一樓的教學檔案,把欄位橫轉直,寫了一個式子,但卻找不到錯誤在哪。

[attach]11558[/attach]

我的需求是,算出從A列向右移動3欄→D列中有多少非空白的欄位

(移動"3"欄,是不一定的,到時候會使用定義去指定)
作者: CyaTu    時間: 2012-7-3 09:53

[attach]11561[/attach]

我把我的檔案傳上來,請幫我看看。
這個雙重驗證清單的功能中,有四個名稱定義,
教學的範例,他的資料是橫列的,但我的資料是直列的。
於是我必須更改他的公式。

LIST工作表是最後想呈現的樣子;
DATA工作表則是把資料整理列出的地方。

四個名稱定義的公式,我都一個個檢查了,
最後發現命名為Heigh的公式跑出來的值不對,但我找不到原因。

請幫幫忙,感謝!
因為我還沒權限可以下載附件,請讓我知道公式的問題就好,用貼圖或是文字都好,感謝!!
作者: HUNGCHILIN    時間: 2012-7-3 10:56

本帖最後由 HUNGCHILIN 於 2012-7-3 11:00 編輯

關於這個HUNGCHILIN的部落格 只是個倉庫
裡面還有很多不同的驗證範例,看連結
http://www.wretch.cc/blog/HUNGCHILIN&category_id=12188609
應該有直的DATA的驗證範例
範例都太久了...很多我都忘了當初的邏輯^^...
近期非常忙碌...要麻煩各位...
手頭還有很多特殊驗證技巧檔...要找時間放...找時間下蛋...有緣的人找時間把它打破
驗證範例裡面應該有幾個檔案...定義有隱藏起來...如果找不到則需要用VBA顯示
作者: CyaTu    時間: 2012-7-3 11:46

本帖最後由 CyaTu 於 2012-7-3 11:47 編輯

哇! 感謝HUNGCHILIN的說明,
您的部落格讓我受益良多,直式的驗證我也有下載來看過,但因為他的DATA比較簡單,只有一列,
橫式的DATA是X-Y表格的型態,比較符合我目前的需求,可增加列、也可增加欄...

我檢查過,這個驗證的部分應該沒有用到VBA,我也一個個公式丟到儲存格去解開,發現唯有我的檔案中名稱定義為Heigh的,跑不出值。
在您的原檔中,命名為MaxA

但因為直橫不同
所以您原先的MaxA寫的是
=MATCH(2,1/(OFFSET(DATABASE!$1:$1,DATA,0)<>""))

我的Heigh則改成
=MATCH(2,1/(OFFSET(DATA!$A:$A,0,toClass)<>""))

但OFFSET的那一段函數,怎麼也跑不出。
我甚至把toClass的定義直接改為數字替代看看,結果還是一樣。
真的需各位前輩幫我解惑,謝謝!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)