XLOOKUP使用情境十四:進階的二維查詢(各地區損益)

使用XLOOKUP製作進階版的二維查詢。

損益表裡的會計科目繁多,在檢視報表時並不一定審視鉅細靡遺的報表,而是著重於特定的幾個指定的會計科目資訊。此實作範例的概念是,製作一個可以僅輸入或選擇某一地區(儲存格C3),即可查詢出該地區的「營業收入」、「毛利率」、「營業利益率」、「稅前淨利率」、「稅後淨利率」等五項資訊。

至於所要查找的資料來源則記錄於各地區的損益表,位於儲存範圍B6:H26。其中,B欄裡是個會計科目名稱,C到G欄則是各地區個會計科目的數據與運算。

雖然此範例僅是輸入或選擇一個地區名稱就進行資料的查找,但仍是屬於二個維度的資料查找,也就是將地區名稱(儲存格C3)vlookup_value與損益表的頂端列裡各個地區名稱(儲存格範圍C5:H5)vlookp_array進行比對,並設定可傳回範圍為損益表裡的損益數據(儲存格範圍B6:G26)return_array,如果能順利找到資料,即可傳回損益數據裡相對應的整欄內容。例如:

=XLOOKUP($C3,各營業地區名稱,損益數據)

若$C3儲存格的內容輸入或選擇的是「文華區」,透過上述的XLOOKUP函數公式,即可傳回整個文華區其會計項目的資料陣列,這個查詢結果是一個縱向的整欄陣列。

接著,可以將上述的查詢結果(傳回的縱向整欄陣列)視為另一個XOOPX函數(外層XLOOKUP)的傳回範圍return_array,並以D2儲存格的內容「營業收入」為查詢值lookup_value,而查找對象lookup_array則是損益表裡的所有會計科目名稱(儲存格範圍B6:B26),例如:

=XLOOKUP(D2,會計項目, XLOOKUP($C3,各營業地區名稱,損益數據))

由於五項指定會計科目資訊:「營業收入」、「毛利率」、「營業利益率」、「稅前淨利率」、「稅後淨利率」已經事先標示在儲存格D2:H2裡,可以在儲存格D3建立上述的XLOOKUP函數:

=XLOOKUP(D2,會計項目,XLOOKUP($C3,各營業地區名稱,損益數據))

在傳回「文華區」的「營業收入」為99346後,便可以將此公式往右填滿至儲存格H3便可查詢出「文華區」的「營業收入」、「毛利率」、「營業利益率」、「稅前淨利率」、「稅後淨利率」等資訊。可是,怎麼都是0呢?

別擔心,那是因為原先的儲存格D3有被我設定為沒有小數的數值格式,因此,公式填滿到右側其他儲存格後,也都是相同的格式,並沒有顯示出小於零的小數值,此時只要設定適用於此範例的百分比格式與理想的小數位數即可。

最後,完成這個實作範例了,換換另一個地區進行查找,例如:儲存格C3改成「銀川區」,則該地區的「營業收入」、「毛利率」、「營業利益率」、「稅前淨利率」、「稅後淨利率」等資訊也立即呈現。以往若這般需求的兩種維度查詢,很需要多種函數搭配運用方能達成,現在只要XLOOKUP就好了!

(本文實作範例下載)