天天看點

Excel中在一個集合(Vector)中查找(lookup函數)比對鍵(KEY)的方法問題:解決:後續操作:

問題:

在應用開發中,可能會有這樣一種場景:已知資料表A字段名定義(中文名稱,英文字段名),已知顯示表格字段名(中文名稱),希望找到顯示表格列對應的字段(英文名)。

換句話說,就是用表格顯示資料表中的資料,資料表的定義知道了(二維數組),要顯示的字段知道了,現在要找出要顯示的字段的英文名出來。

解決:

以上問題使用EXCEL解決,先将資料表定義複制到B、C列,查找字段中文名稱複制到C列,H列為存儲結果。

資料表定義 字段中文名稱 英文名稱是什麼?
B C E H
KEY        VALUE         KEY        ?VALUE

1、H列為結果列,在B-C表中,查找使B=E,然後取出B-C表的值,即C列,H公式為:

=LOOKUP(1,1/(E2=$B$2:$B$52),$C$2:$C$52)

H列按住右下角十字标往下拖,即可完成對E列的查找。

這裡模拟問題中的場景資料:B列相當于字段中文名稱,C列相當于字段英文名,E列相當于需求中要求顯示的字段,H列相當于輸出結果。

Excel中在一個集合(Vector)中查找(lookup函數)比對鍵(KEY)的方法問題:解決:後續操作:

可以看到H列中已經顯示了查找結果,有部分字段沒有找到比對值。

注:

這樣的公式将輸出錯誤的結果:

=LOOKUP(E2,$B$2:$B$52,$C$2:$C$52)

LOOKUP是模糊比對,會出現找到的結果并不完全比對查找KEY的情況。

2、若需要将#N/A值轉換為空,則公式為:

=IFERROR(LOOKUP(1,1/(E2=$B$2:$B$52),$C$2:$C$52),"")

後續操作:

若要将找出的列變成SQL語句,則可以在對H列資料補全後拷貝H列到UltraEdit編輯器中,使用替換法進行替換。使用UltraEdit正規表達式:

要替換的文本框輸入:^p

替換文本框輸入:,

 最後的結果就是以逗号分隔的字段值了,例如:ID,KGSJ,JGSJ......。

上一篇: Word檔案修複
下一篇: Eclipse列編輯

繼續閱讀