kintone 可以透過外掛程式擴充應用程式的功能。除了第三方廠商開發販售的外掛之外,Cybozu 台灣也針對在地客戶提供了多款免費外掛,讓使用者不需額外花費也能導入實用的解決方案。
在【kintone免費外掛活用】系列文章中,我們將介紹目前提供中的免費外掛及其實際應用範例,供大家參考。若有需求,可洽詢您的業務負責人或授權經銷商協助申請使用。
這次要介紹的是「進階Lookup外掛(Advanced Lookup Plug-in)」,以及如何運用此外掛實現「縣市 → 行政區 → 道路」的階層選擇效果。
「地址」是許多應用中常見的資料欄位。若在輸入時能提供階層式的下拉選單,讓使用者先選縣市、再選行政區、最後選擇道路,不僅能加快輸入速度,也能有效降低輸入錯誤的風險。

然而,kintone 的原生下拉選單並不支援階層關聯的設定。若要實現如上圖所示的效果,就必須透過客製化或搭配外掛來完成。
雖然 Cybozu 台灣目前沒有提供階層式的下拉選單的外掛,但是可以透過「進階Lookup外掛」,搭配行政區與道路資料管理的應用程式,以 Lookup 的方式取得鄉鎮市區與路名資料,來達成類似的效果。
首先,必須建立「台灣鄉鎮市區」以及「台灣道路」兩個應用程式,用來管理選項用資料。
需要包含三個「單行文字方塊」:

一樣需要包含三個「單行文字方塊」:

政府資料開放平臺-全國路名資料:
https://data.gov.tw/dataset/35321

台灣全國路名資料可自政府資料開放平臺取得,請先從該平臺下載最新年份的 CSV 資料。下載後的資料如下圖:

資料一共有三欄:
我們需要將這份資料依照以上兩個資料來源應用程式的格式,整理成兩份 CSV 後再匯入。
site_id首先,我們要先整理出不重複的 site_id。
在 Excel 中,可以使用 UNIQUE 函數快速取得唯一值:
=UNIQUE (陣列,[by_col],[exactly_once])
其中 [by_col] 與 [exactly_once] 為選填參數,這裡我們只需要從原始的 site_id 欄位取值即可,因此公式如下:
=UNIQUE(B:B)
得到不重複的 site_id 後,請將結果整欄複製並在新的一欄「貼上值」,確保公式結果轉為靜態文字。
完成後,即可刪除多餘欄位,只保留乾淨的唯一 site_id 清單,方便後續處理。

在原始資料中,「東區」「西區」「南區」「北區」之間含有全形空格。
若希望清除這些多餘的空格,可以使用 Excel 的「全部搜尋/取代」功能:
搜尋全形空格,取代欄位留白不填,然後執行「全部取代」,即可一口氣移除空格。
city 與 site 資料接著,我們要將縣市名稱與鄉鎮市區名稱分別獨立出來。
縣市名稱 (city) 結構相對單純,皆為三個字,因此可以使用 LEFT 函數擷取前三個字作為縣市名稱。
=LEFT(儲存格, 取得字元數)
由於資料從第二列開始,所以可在 B2 儲存格中輸入以下公式:
=LEFT(A2, 3)
再點擊右下角填滿柄(小方塊)兩下,Excel 就會自動將公式套用至整欄,快速帶出每列的縣市名稱。
至於鄉鎮市區 (site),因字數長度不固定,因此可搭配 LEN 與 RIGHT 函數。
先用 LEN 取得字串總長度,扣除前三個字(縣市名),再用 RIGHT 取出剩下的部分。公式如下:
=RIGHT(A2, LEN(A2)-3)
完成後,即可得到如下結果:

回到剛才建立的「台灣鄉鎮市區」應用中,匯入整理好的 csv 檔:



原始資料中已經有 site_id 以及 road 資料,所以只需要將這兩個字串結合,即為 road_id。
重新開啟原始資料,刪去不需要的 city 欄,並以 CONCATENATE 函數結合縣市鄉鎮市區以及路名,範例公式如下:
=CONCATENATE(A2,B2)
完成後的資料如下:

回到「台灣道路資料」應用中,匯入整理好的 CSV,來源資料的前置準備就大功告成了!

完成來源資料的準備後,就可以進入主應用的設定階段。
首先,在表單中新增一個「下拉式選單」欄位,輸入台灣所有縣市名稱。
💡 小訣竅:
可在原始資料中使用 UNIQUE 函數,從city欄位取出不重複的縣市清單,直接複製並貼到選項設定中,即可快速建立所有縣市選項。
建立以下兩個 Lookup 欄位:

來源應用程式選擇「台灣鄉鎮市區資料」,索引鍵設定為 site_id。
若需要僅顯示鄉鎮市區名稱的欄位,可另外新增單行文字欄位,並在欄位對應中帶入 site 欄位。

來源應用程式選擇「台灣道路資料」,索引鍵設定為 road_id。
若需要僅顯示路名的欄位,同樣可新增單行文字欄位,並在欄位對應中帶入 road 欄位。
最後,在應用程式的外掛設定中,新增「進階Lookup外掛」並依下圖進行設定後保存:


設定完成後,「選擇鄉鎮市區」會依照所選的「縣市」自動篩選出對應資料,而「選擇道路」則會再根據「選擇鄉鎮市區」的值動態篩選,實現階層式選單的互動效果。
除了地址輸入外,這種階層選單的做法也非常適合應用在其他情境,例如:
希望這篇文章能帶給你一些靈感,善用免費外掛,讓你的 kintone 更聰明、更好用!