Excel 公式: 根據一個單元格的用戶輸入值, 自動設置另一個單元格的值

這篇blog討論的事兒, 是關於使用Excel, 如何根據一個單元格的用戶輸入值, 自動設置另一個單元格的值.

 

這個需求最開始的動機是這樣的,

我們需要維護一個員工表, 員工便上面有員工所屬於的部門名, 以及這個部門的編碼這樣的信息,

對於員工所屬於的部門的名字, 我們可以使用數據有效性, 通過下拉列表的方式實現

但是, 員工部門的編碼, 一來不好記憶, 二來他們彼此還十分相似, 很容易混淆.

 

因此我們希望:

當用戶選擇了部門名稱之後, 可以在excel, 將部門的編碼自動補全.

 

類似的情形還有, 比如:

使用excel管理圖書的信息表,這個表裏面很可能有圖書名和ISBN,

我們希望當編輯圖書名字的單元格的時候, 可以自動補全ISBN,

 

對於類似的需求, 我們可以使用vba來做,

但是如果在excel裏面插入了vba, 用戶在打開excel的時候, 會彈出安全性提示(根據安全性級別的設置而定).

所以跟vba比較, 我們還是更傾向於公式.

感謝S同學, :-)  通過公式我們可以有一下兩種方法.

(在附件的excel文件中, 有這兩種方法的具體示例)

 

方法一: 利用INDEX和MATCH函數

寫出來的公式是形如下面這樣, 其中method_1_config是一個單獨的sheet, 用於配置連動的對應關係.

 

=IF(($B3<>""),INDEX(method_1_config!$A:$B,MATCH($B3,method_1_config!$A:$A,0),2),"")
 

方法二: 利用LOOKUP函數

寫出來的公式是形如下面這樣, 其中method_2_config是一個單獨的sheet, 用於配置連動的對應關係.

 

=IF(($D3<>""),LOOKUP($D3,method_2_config!A:A,method_2_config!B:B),"")
 

 

注意的問題

在我們的測試中, 我們發現第二種方法LOOKUP函數, 不支持中文,日本等全角字符, 有匹配錯誤的現象.

詳見附件.

而方法一則可以支持這些全角字符,

因此我們最終採用方法一實現.

另: 而且在附件中, 也測試了空格, -, 還有括號的情況.

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章