iT邦幫忙

2023 iThome 鐵人賽

DAY 21
1
AI & Data

實用Modern Data Stack:資料架構案例分析與分享系列 第 21

隨筆:為什麼VLOOKUP“已排序”參數預設是0? Part 2

  • 分享至 

  • xImage
  •  

VLOOKUP的歷史

事實上,VLOOKUP的歷史早於EXCEL。1983年Lotus 1-2-3首次發行,其中包括了VLOOKUP函數,而這甚至不是第一個Spreadsheet查找函數。Lotus 1-2-3大部分的功能是沿用VisiCalc(世界上第一套電子試算表軟件),VLOOKUP也是延續了VisiCalc內的@LOOKUP函數功能。

從VisiCalc的發明人Bob Frankston的自傳中,他提到了@LOOKUP最早的應用案例:

One of the early applications for VisiCalc was my 1979 tax form. I created @lookup for that purpose.
VisiCalc 的早期應用程式之一是我 1979 年的稅表。 我為此目的創建了@lookup。
出自: Implementing VisiCalc

換句話說,LOOKUP和後續的VLOOKUP其實是為了税表查詢這種數值區間查找功能而發明的。而實際上,Lotus 1-2-3內的VLOOKUP其實是沒有第四個函數參數的。而過去40年為了保持兼容性,這個函數的輸入從來都沒有變過。

後記

另外還有一個說法是有關於效能。由於近似比對的假設是查詢資料是以排序的,所以可以使用高效的Binary Search。相對的,完全比對使用的是低效的Linear Search。如果在以前的舊電腦上跑了Linear Search可能會造成不必要的處理延遲(lag)。但考慮到早期的系統根本沒有完全比對這個功能,這個解釋應該不是正解。

雖然資料工作者常常開Spreadsheet使用者的玩笑,但事實是Spreadsheet這個軟體工具從個人電腦剛發明的年代到現在都是商務用戶的Killer App。作為 2023 年愚人節玩笑,諮詢公司 Xebia 宣布他們要推出一款適用於當下最夯的資料工具dbt 和 DuckDB的 Excel Adapter。但沒想到的事,這個工具一下子就在資料工作社群,在短時間達到了80+個Github Star
https://ithelp.ithome.com.tw/upload/images/20231005/20161946EC96wYMg1M.png
愚人節後他們立刻就棄用(deprecated)了這個工具,但可以看出來Excel持久不衰的人氣。


上一篇
隨筆:為什麼VLOOKUP“已排序”參數預設是0? Part 1
下一篇
Reverse ETL & C-CDP:活化你的資料倉庫 Part 4
系列文
實用Modern Data Stack:資料架構案例分析與分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言