合併一排字串並產出以逗點分隔並加上引號的字串 Join list of string to comma separated and enclosed in single quotes

我在處理資料時,經常需要在 SQL、Excel、和 R 之類的軟體之間切換。在這之間,一個很煩人的情況是我在其中一個軟體(例如 Excel)發現了一排資料有問題,或是想要更進一步了解這幾筆資料的情況,於是我列出它們的 ID/Unique,拿到另外一個軟體/資料庫去查詢它們的詳細資料(例如 R 或 MySQL),這時候就必須把那些 ID 用引號包起來,再用逗點隔開,才能在另外一個軟體之間查詢。

具體情況可以用以下情境表示。

我在 Excel 中發現了資料 B, C, D, E, F 有意思,想要回到資料庫裡去看更詳細的資料。

當我在 SQL 中查詢時,我要輸入的指令可能就是要用到 IN 這個 SQL command:

SELECT * FROM tableA WHERE ID IN ('B', 'C', 'D', 'E', 'F')

在 R 的話,可能可以 dplyr 這個 package 下 filter(table A, ID %in% ('B', 'C', 'D', 'E', ‘F’)) 這樣的指令。但在 Excel 裡,B, C, D, E, F 這五個 ID 是一排斷行的文字,要怎麼把他們串在一起,變成上述那樣 ‘B’, ‘C’, ‘D’, ‘E’, ‘F’ 以逗號隔開並加上單引號的字串呢?我以前是用 Excel 的 function 來達到這種效果。

這種方法雖然有用,但每次都要寫這樣的 function 實在很沒效率。寫成 VBA 的話,雖然省了一點事,但變成每次要使用這個功能時都必須開 Excel,很沒道理。

好在 Mac 裡有超多方便的工具可以使用。我在以 Python 為底,並分別用 Keyboard Maestro 和 Automator 將這個功能整合進 Mac OS 裡。

繼續閱讀