作者runaway580 (讓個位)
看板Office
標題[算表] match列號問題
時間Wed Mar 12 23:32:57 2014
軟體:excel 2007
不好意思 又來發問了><
假設我要取得產品A 版本2的列號 也就是 5
有加輔助欄的是打得出來 欄C那邊 把 欄A跟欄B連在一起
然後打在欄D打上 =match(A1&B1,C:C,0) 取得
請問有辦法在沒有輔助欄的狀態下取得嗎?
欄A 欄B
版本
產品A 1
產品B 1
產品B 2
產品B 3
產品A 2
產品A 3
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.231.81.98
2F:→ runaway580:再次感謝S大 今天大概可以早點結案了... 03/13 00:42
3F:推 I4Lione:冒昧斗膽請教 S大,為什麼要用 0/((A:A=A5)*(B:B=B5)) 03/13 00:52
4F:→ I4Lione:這樣的用法,而不能把 0/ 省略,直接用 03/13 00:52
5F:→ I4Lione:LOOKUP(TRUE,((A:A=A5)*(B:B=B5)),ROW(B:B)) 或 03/13 00:52
6F:→ I4Lione:LOOKUP(1,((A:A=A5)*(B:B=B5)),ROW(B:B)) 呢? 03/13 00:52
7F:→ I4Lione:我知道這樣寫的結果是錯的,但一直不懂為什麼,非常感謝! 03/13 00:52
8F:→ soyoso:這是因為lookup函數有遞增和二分法的觀念 03/13 07:52
9F:→ soyoso:LOOKUP(TRUE,((A:A=A5)*(B:B=B5)),ROW(B:B))的寫法 03/13 07:53
10F:→ soyoso:它會先去找1048576/2=524288這一列a和b是否滿足條件 03/13 07:53
11F:→ soyoso:結果為false(0)還未大於等於true(1) 03/13 07:53
12F:→ soyoso:函數會接著找下半部,再二分法,找786432這一列 03/13 07:54
13F:→ soyoso:條件滿足結果一樣還未大於等於,再往下找 03/13 07:54
14F:→ soyoso:因條件一直沒有滿足就一直往下找 03/13 07:55
15F:→ soyoso:找到最後一列都未滿足時,它就會回傳最後一列列號 03/13 07:55
16F:→ soyoso:另外就是lookup有忽略錯誤值 03/13 08:05
17F:→ soyoso:這就是為什麼要用0/,0/1=0,0/0=#div/0錯誤值 03/13 08:05
18F:推 I4Lione:感謝 S大精闢的解說,本來在想當 LOOKUP 函數在 03/13 22:47
19F:→ I4Lione:第 524288 列找到 #DIV/0! 之後,會做什麼動作? 03/13 22:47
20F:→ I4Lione:所以我可以理解成所有 #DIV/0! 都一開始就直接被忽略了, 03/13 22:47
21F:→ I4Lione:其實只是在執行 LOOKUP(1,{0},{5}) 而已,這樣理解對吧? 03/13 22:47
22F:→ soyoso:是的^^ 03/13 22:53
23F:推 I4Lione:大大感謝 m(_ _)m 03/13 23:04