Board logo

標題: [發問] 求指定對應值 [打印本頁]

作者: ziv976688    時間: 2016-3-23 13:10     標題: 求指定對應值

[attach]23540[/attach]
以下問題,請各位先進賜教!謝謝!
[attach]23541[/attach]
Sheet1!
D2=
當列的A欄值=第一個C欄時,則D欄顯示B欄值。

E2=
當列的A欄值=最後一個C欄時,則E欄顯示B欄值。
[attach]23542[/attach]
Sheet2!
D2=
當列的A欄值=上面第一個C欄時,則D欄顯示B欄值。

E2=
當列的A欄值=上面最後一個C欄時,則E欄顯示B欄值。

備註︰
當列的C欄值不計算在內。
EX︰
A3=C3
A42=C42
作者: ziv976688    時間: 2016-3-23 14:05

補充︰
A:C欄資料會再續增。
B欄數字不會重複;A&C欄數字會重複。
作者: rouber590324    時間: 2016-3-23 14:08

DEAR  SIR
試試
D2=INDIRECT("B"&MATCH(C2,A:A,0))
E2=INDIRECT("B"&MATCH(C2,A:A,1))
作者: ziv976688    時間: 2016-3-23 14:30

回復 3# rouber590324
謝謝大大的回應
但公式答案好像不符合需求^^"

本來我有以下列函數試過
INDEX+MATCH
VLOOKUP
但答案也不符合需求
都只顯示第一個C欄值的B欄對應值,且當列A欄值=C欄值時的B欄值也計算在內。
作者: 准提部林    時間: 2016-3-23 15:37

D2.一般公式:
=IF(COUNT(0/(MATCH(A2,C:C,)<>ROW())),INDEX(B:B,MATCH(A2,C:C,)),"")
 
E2.陣列公式:〔Shift + Ctrl → Enter〕三鍵
=IF(COUNT(0/(MATCH(1,0/(C$2:C$49=A2))<>ROW(A1))),LOOKUP(1,0/(C$2:C$49=A2),B$2:B$49),"")

E8應為45才對吧!
作者: ziv976688    時間: 2016-3-23 19:02

回復 5# 准提部林
謝謝版主大大的Sheet1解答
公式答案符合需求。謝謝您^^
不好意思,手動填入,漏改了  
E8=45才對

我用Sheet1
D2=IF(ISNA(MATCH(A2,C:C,)),"",INDEX(B:B,MATCH(A2,C:C,)))
E2=INDEX(B:B,MAX(IF($C$2:$C$65536=A2,ROW($2:$65536),"")))&""  陣列
就是沒有辦法將"當列A欄值=C欄值"時的B欄值"不計算"在內^^"

版主大大:
還有Sheet2的D2和E2公式,可否請您再次指導
謝謝您^^
作者: ziv976688    時間: 2016-3-23 19:39

回復 5# 准提部林
版主大大︰
再補充說明,以利您作答
謝謝您!

Sheet2和Sheet1的差別處是Sheet2只以B2比對<B2的區域
EX︰
B3的A欄值只比對B$2的C欄值
B4的A欄值只比對B$2︰B3的C欄值
B5的A欄值只比對B$2︰B4的C欄值
其餘類推

然後
D2是取比對區域內符合條件的C欄值的最小B欄對應值
E2是取比對區域內符合條件的C欄值的最大B欄對應值

所以D2和E2都會=""
作者: 准提部林    時間: 2016-3-23 20:03

回復 7# ziv976688


一樣請上傳檔案, 及模擬需求結果!!!
作者: ziv976688    時間: 2016-3-23 20:11

回復 8# 准提部林
版主大大:
範例和答案如第2個圖片
或請您詳見壓縮檔附件的Sheet2
謝謝您^^
作者: 准提部林    時間: 2016-3-23 20:40

回復 9# ziv976688

=IF(ISNA(MATCH(A2,C$1:C1,)),"",INDEX(B:B,MATCH(A2,C$1:C1,)))
=IF(ISNA(MATCH(A2,C$1:C1,)),"",LOOKUP(1,0/(C$1:C1=A2),B$1:B1))

都是一般公式
作者: ziv976688    時間: 2016-3-23 21:27

回復 10# 准提部林
版主大大:
謝謝您的耐心指導
完成了!感恩^^




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