「總表」設定

總表裡我們目前有兩個欄位,藥品代碼目前結存

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7b0da7b3-42f7-467e-9734-8bb928e63041/_2020-06-09_10.00.11.png

我們接著要新增一些欄位。考慮到管藥的品項會愈來愈多,所以下面我們使用動態範圍和陣列公式兩個來協助帶入資料。

建立「總表」的動態範圍

第一步我們在 C2 儲存格,輸入公式

="A1:A"&countif(A:A,"<>0")

這個公式分成兩個部份,用"&"連結起來:

這個公式會得到一個範圍,我們這裡示範的總表有13行,所以這裡的計算結果就會是 A1:A13。未來管藥的品項增加的時候,動態範圍會隨之改變,如果藥品代碼欄有 30 列,這裡計算的結果就會變成 A1:A30,不需要我們再手動修改,維護上比較方便。

接著我們在藥品代碼欄(A)和目前結存欄(B)中插入 3 個空白欄位。然後在 B1 儲存格,輸入以下公式:

=arrayformula(vlookup(indirect($F$2),'藥品許可證清單'!$B:$P,5,false))

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5acdfbce-469c-499e-b371-465eaf346fad/Jun-10-2020_22-13-15.gif

這是一個陣列公式,它的功能是利用我們剛剛定義出的動態範圍,自動去「藥品許可證清單」找出對應的藥品名稱。

解釋函數內容

vlookup 是常用的水平查找函數,它需要 4 個參數

第 1 個參數,指定要找的東西。我們要找 A1:A13 ,用 indirect($F$2) 就可以代表 A1:A13,這樣我們就不用一行行複製函數。

第 2 個參數,指定要去哪找。'藥品許可證清單'!$B:$P 表示去「藥品許可證清單」的 B 欄至 P 欄找。