2019年4月20日 星期六

在試算表中產生文字明細


前言:數年前,我在PTT團購板(BuyTogether)當了幾次主購,初衷純粹是為了體驗「當一個很厲害的會計」的感覺。引發我動機的是試算表中「VLOOKUP」這個函數指令;聽說用了它之後,就可以在幾秒內將數百人的匯款對帳完畢,著實讓我心神嚮往!於是我參考了PTT網友aotsukirin的教學(只要看文末「歡迎下載!!」那個Excel檔案即可,檔案裡有相當精簡的操作說明,實際操作後就能立刻理解),執行了幾次團購對帳,頓時讓我有功力大發、迅速晉升為武林至尊的感受。當時唯一不能在「幾秒內解決」的步驟,是「產生每人訂單明細」這件事。

身為主購,你須向賣家提供服飾「每一種尺寸的件數」的清單,但你須向集運公司提供的卻是「每一位買家購買的各尺寸件數」。在網友買家填寫Google Form時,他們在顏色尺寸「黑M」、「紅S」等各欄下填寫數字,而你在後台spreadsheet中可以輕鬆的把各尺寸數字加總起來,交給賣家。但你尚未能輕鬆的把各人的購買清單加總起來成為文字明細(例如「黑[M]*4, 紅[S]*1」),以交給集運公司分貨打包寄給每個買家。

所以我在當時為此製作了一串語碼,寫在這個範例試算表內。用法說明:

該檔 J 欄有個長碼;若你的商品尺寸欄為 B 到 G 欄(如範例檔所示),就取那長碼中 B 與 G 之間的碼,貼到明細欄 H2 內,以下往下拉,便能立刻生出所有明細。

使用此語碼毫不困難;但要「建構正確語碼,並把它輪迴拉長」,則須我事先另查網路資料。這段長碼是我用 CONCATENATE 和 TRANSPOSE 指令跑出來的。它當然也可以用Python等程式語言生出來。我用過各式各樣的語言,但沒有任何忠誠度,因為至今我還是不會寫任何語言——是的,我就是在不會寫程式語言的狀態下寫了程式語言這麼多年,用來分析研究數據,或解決生活小事;這一切,都靠豐富的網路資源。

--
最近發生了一些小事,讓我想把過去幾年用的「生活小碼」(?)貼上來留念。過幾天我再陸續分享一些小東西。

0 個回應:

張貼留言