[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-categories":3,"blog-category-office":78},[4,10,14,19,24,30,36,40,45,51,55,58,62,68,73],{"id":5,"databaseId":6,"name":7,"slug":8,"count":9},"dGVybTo1NQ==",55,"AI","ai",2,{"id":11,"databaseId":12,"name":13,"slug":13,"count":9},"dGVybTo2MQ==",61,"backend",{"id":15,"databaseId":16,"name":17,"slug":18,"count":16},"dGVybToyMA==",20,"Devops","devops",{"id":20,"databaseId":21,"name":22,"slug":22,"count":23},"dGVybToxNQ==",15,"frontend",25,{"id":25,"databaseId":26,"name":27,"slug":28,"count":29},"dGVybTo2MA==",60,"GAS","gas",1,{"id":31,"databaseId":32,"name":33,"slug":34,"count":35},"dGVybTo5",9,"HTML","html",4,{"id":37,"databaseId":38,"name":39,"slug":39,"count":29},"dGVybToyMg==",22,"mac",{"id":41,"databaseId":42,"name":43,"slug":43,"count":44},"dGVybTo2",6,"node",18,{"id":46,"databaseId":47,"name":48,"slug":49,"count":50},"dGVybTo2OQ==",69,"Nuxt","nuxt",3,{"id":52,"databaseId":53,"name":54,"slug":54,"count":50},"dGVybTo1NA==",54,"office",{"id":56,"databaseId":9,"name":57,"slug":57,"count":21},"dGVybToy","omekas",{"id":59,"databaseId":60,"name":61,"slug":61,"count":16},"dGVybToxNg==",16,"vue",{"id":63,"databaseId":64,"name":65,"slug":66,"count":67},"dGVybTo1",5,"WordPress","wordpress",13,{"id":69,"databaseId":29,"name":70,"slug":71,"count":72},"dGVybTox","無","uncategorized",null,{"id":74,"databaseId":75,"name":76,"slug":77,"count":9},"dGVybTo3MA==",70,"生活","life",[79,93,105],{"id":80,"slug":81,"title":82,"description":83,"content":84,"date":85,"image":86,"imageAlt":82,"author":87,"categories":90,"path":92,"minRead":29},3681,"google-sheet-試算表建立多層次選單","google sheet 試算表建立多層次選單","google sheet 建立多層次選單 記錄一下 google sheet 試算表建立多層次選單的方式。 單 […]","\u003Ch1>google sheet 建立多層次選單\u003C\u002Fh1>\n\u003Cp>記錄一下 google sheet 試算表建立多層次選單的方式。\u003C\u002Fp>\n\u003Ch2>單層選單\u003C\u002Fh2>\n\u003Cp>單層選單的方式直接使用資料驗證，以臺北市和新北市的行政區為例子。資料包含臺北市和新北市以及其行政區。\u003Cbr \u002F>\n\u003Cimg decoding=\"async\" src=\"\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2024%2F03%2F%E6%88%AA%E5%9C%96-2024-03-20-%E4%B8%8B%E5%8D%884.52.01-141x300.png\" alt=\"\" \u002F>\u003C\u002Fp>\n\u003Col>\n\u003Cli>首先在使用選單的分頁，取名為「顯示選單」，並且在選單位置，插入\u003Cem>資料-&gt;資料驗證\u003C\u002Fem>\u003Cbr \u002F>\n\u003Cimg decoding=\"async\" src=\"\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2024%2F03%2F%E6%88%AA%E5%9C%96-2024-03-20-%E4%B8%8B%E5%8D%884.49.27-282x300.png\" alt=\"\" \u002F>\u003C\u002Fli>\n\u003Cli>\u003Cem>新增規則\u003C\u002Fem>\u003Cbr \u002F>\n\u003Cimg decoding=\"async\" src=\"\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2024%2F03%2F%E6%88%AA%E5%9C%96-2024-03-20-%E4%B8%8B%E5%8D%884.49.35-300x122.png\" alt=\"\" \u002F>\u003C\u002Fli>\n\u003Cli>條件選擇\u003Cem>下拉式選單(來自某範圍)\u003C\u002Fem>\u003Cbr \u002F>\n\u003Cimg decoding=\"async\" src=\"\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2024%2F03%2F%E6%88%AA%E5%9C%96-2024-03-20-%E4%B8%8B%E5%8D%884.50.35-300x295.png\" alt=\"\" \u002F>\u003C\u002Fli>\n\u003Cli>\u003Cem>選取範圍資料\u003C\u002Fem>，先選擇一級行政區\u003Cbr \u002F>\n\u003Cimg decoding=\"async\" src=\"\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2024%2F03%2F%E6%88%AA%E5%9C%96-2024-03-20-%E4%B8%8B%E5%8D%884.50.55-300x168.png\" alt=\"\" \u002F>\u003C\u002Fli>\n\u003Cli>完成\u003Cbr \u002F>\n\u003Cimg decoding=\"async\" src=\"\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2024%2F03%2F%E6%88%AA%E5%9C%96-2024-03-20-%E4%B8%8B%E5%8D%884.51.02-300x182.png\" alt=\"\" \u002F>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2>多層選單\u003C\u002Fh2>\n\u003Cp>多層選單的話，有兩個重點：\u003C\u002Fp>\n\u003Col>\n\u003Cli>使用 \u003Cstrong>INDIRECT\u003C\u002Fstrong>  函數\u003C\u002Fli>\n\u003Cli>建立\u003Cstrong>資料範圍\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>建立\u003Cstrong>參照\u003C\u002Fstrong>分頁\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>INDIRECT 函數\u003C\u002Fh3>\n\u003Cp>在試算表中，如果 A 工作表的儲存格想要關聯至 B 工作表的儲存格，\u003Cbr \u002F>\n就可以使用 INDIRECT 這個函數。\u003C\u002Fp>\n\u003Cpre>\u003Ccode>=INDIRECT(&quot;A1&quot;)\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>但要發揮作用，還可以搭配\u003Cem>資料範圍\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch3>建立多層選單\u003C\u002Fh3>\n\u003Cp>延續單層選單，我們往後處理行政區，步驟如下：\u003C\u002Fp>\n\u003Col>\n\u003Cli>先建立\u003Cem>資料範圍\u003C\u002Fem>，回到資料的頁面選取行政區，分別取名對應的一級行政區。選取資料後，左上角，選擇\u003Cem>管理已命名範圍\u003C\u002Fem>\u003Cbr \u002F>\n\u003Cimg decoding=\"async\" src=\"\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2024%2F03%2F%E6%88%AA%E5%9C%96-2024-03-20-%E4%B8%8B%E5%8D%885.08.22-300x278.png\" alt=\"\" \u002F>\u003C\u002Fli>\n\u003Cli>右側視窗，輸入「臺北市」，並確認選取範圍，完成。依照此方式建立所有行政區的\u003Cstrong>命名範圍\u003C\u002Fstrong>。\u003Cbr \u002F>\n\u003Cimg decoding=\"async\" src=\"\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2024%2F03%2F%E6%88%AA%E5%9C%96-2024-03-20-%E4%B8%8B%E5%8D%885.05.25-300x190.png\" alt=\"\" \u002F>\u003C\u002Fli>\n\u003Cli>建立\u003Cem> 參照\u003C\u002Fem>分頁。\u003Cbr \u002F>\n\u003Cimg decoding=\"async\" src=\"\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2024%2F03%2F%E6%88%AA%E5%9C%96-2024-03-20-%E4%B8%8B%E5%8D%885.02.28.png\" alt=\"\" \u002F>\u003C\u002Fli>\n\u003Cli>在參照頁中，使用 INDIRECT 函式建立參照資料。\n\u003Cpre>\u003Ccode>=INDIRECT(&#039;顯示選單&#039;!B1)\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>如果顯示選單分頁中有選擇縣市的話，這邊就會跳出對應的行政區資料。\u003Cbr \u002F>\n\u003Cimg decoding=\"async\" src=\"\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2024%2F03%2F%E6%88%AA%E5%9C%96-2024-03-20-%E4%B8%8B%E5%8D%885.12.30.png\" alt=\"\" \u002F>\u003Cbr \u002F>\n\u003Cimg decoding=\"async\" src=\"\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2024%2F03%2F%E6%88%AA%E5%9C%96-2024-03-20-%E4%B8%8B%E5%8D%885.11.47-286x300.png\" alt=\"\" \u002F>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>因為直欄不易維護，所以得將資料轉換成橫式，要在使用 \u003Cstrong>INDIRECT\u003C\u002Fstrong> 函式。\n\u003Cpre>\u003Ccode>=TRANSPOSE(INDIRECT(&#039;顯示選單&#039;!B1))\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cimg decoding=\"async\" src=\"\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2024%2F03%2F%E6%88%AA%E5%9C%96-2024-03-20-%E4%B8%8B%E5%8D%885.15.23-300x33.png\" alt=\"\" \u002F>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>再做一次二層選單的資料驗證。並且要將鎖定 \u003Cem>$\u003C\u002Fem> 移除。\n\u003Cpre>\u003Ccode>將 =&#039;參照&#039;!$A$1:$T$1 改為 =&#039;參照&#039;!A1:T1\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cimg decoding=\"async\" src=\"\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2024%2F03%2F%E6%88%AA%E5%9C%96-2024-03-20-%E4%B8%8B%E5%8D%885.17.01-300x97.png\" alt=\"\" \u002F>\u003Cimg decoding=\"async\" src=\"\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2024%2F03%2F%E6%88%AA%E5%9C%96-2024-03-20-%E4%B8%8B%E5%8D%885.18.27-300x271.png\" alt=\"\" \u002F>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>基本上就完成了！\u003Cbr \u002F>\n\u003Cimg decoding=\"async\" src=\"\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2024%2F03%2F%E6%88%AA%E5%9C%96-2024-03-20-%E4%B8%8B%E5%8D%885.20.50-300x242.png\" alt=\"\" \u002F>\u003C\u002Fli>\n\u003Cli>如果後續要複製同樣多層次選單，參照頁得同步建立複數資料，顯示選單分頁才會正常吃到參照的資料驗證喔。\u003Cbr \u002F>\n\u003Cimg decoding=\"async\" src=\"\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2024%2F03%2F%E6%88%AA%E5%9C%96-2024-03-20-%E4%B8%8B%E5%8D%885.22.47-300x36.png\" alt=\"\" \u002F>\u003C\u002Fli>\n\u003C\u002Fol>\n","2024-03-25T10:43:37","\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2024%2F03%2Fdb8d0611-0e56-4497-8a79-b4b44bbdf568.jpeg",{"name":88,"link":89},"Chih Fan","http:\u002F\u002Fpost.billxu.net",[91],{"name":54,"slug":54},"\u002Fblog\u002Fgoogle-sheet-試算表建立多層次選單",{"id":94,"slug":95,"title":96,"description":97,"content":98,"date":99,"image":100,"imageAlt":96,"author":101,"categories":102,"path":104,"minRead":29},3504,"google-sheet的app-script中getrange-與-getdatarange的差異","google sheet的app script中getRange 與 getDataRange的差異","google sheet的app script中getRange 與 getDataRange的差異 沒想到會 […]","\u003Ch1>google sheet的app script中getRange 與 getDataRange的差異\u003C\u002Fh1>\n\u003Cp>沒想到會碰到google sheet的app script的需求，哈哈，時常耳聞如果有在使用google sheet的話app script會增加非常多助力，實際寫過還真的如此，類似Excel的巨集，但因為google api整合的很好，所以實際上能做非常多事情，今天就來記錄一下遇到的一些狀況。\u003C\u002Fp>\n\u003Ch2>如何取資料\u003C\u002Fh2>\n\u003Cp>使用app script在sheet中大多時間應該會去查找資料，跟資料庫不同，我們必須手刻查找的方式，就是一欄(column)一列(row)的去找，就會使用getRange 與 getDataRange這兩個函式。\u003C\u002Fp>\n\u003Ch2>getRange\u003C\u002Fh2>\n\u003Cp>主要功能就是指定資料範圍，可以選用A1標記或是R1C1標記。\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fdevelopers.google.com\u002Fapps-script\u002Freference\u002Fspreadsheet\u002Fspreadsheet?hl=zh-tw#getrangea1notation\">https:\u002F\u002Fdevelopers.google.com\u002Fapps-script\u002Freference\u002Fspreadsheet\u002Fspreadsheet?hl=zh-tw#getrangea1notation\u003C\u002Fa>\u003Cbr \u002F>\n舉例來說如下，以sheet中的第一欄第一列那格儲存格(cell)來說：\u003C\u002Fp>\n\u003Ch3>A1標記\u003C\u002Fh3>\n\u003Cpre>\u003Ccode>getRange(&#039;A1&#039;)  \u002F\u002F(欄位置,列位置) \u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>R1C1標記\u003C\u002Fh3>\n\u003Cpre>\u003Ccode>getRange(1,1,1,1)  \u002F\u002F(起始列,起始欄,欄數,列數) \u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>在sheet上方可以看到每欄都有標記像是A~Z\u003Cbr \u002F>\n左側則有列數標記1 ~ 1000\u003Cbr \u002F>\n以此類推\u003Cbr \u002F>\n有幾種範圍指定方式，\u003Cbr \u002F>\n1.指定一個儲存格(cell)\u003Cbr \u002F>\n就是上述例子，規格就是先欄後列，所以就是getRange('A1')，如果是B20那就是getRange('B20')，用R1C1標記的話就getRange(2,20,1,1)，\u003C\u002Fp>\n\u003Cp>2.指定範圍\u003Cbr \u002F>\n將以上方式拓展成一個區域時的寫法如下，例如A1~C10，也就是會有3欄10列的狀況。\u003C\u002Fp>\n\u003Ch3>A1標記\u003C\u002Fh3>\n\u003Cpre>\u003Ccode>getRange(&#039;A1:C10&#039;)\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>R1C1標記\u003C\u002Fh3>\n\u003Cpre>\u003Ccode>getRange(1,1,3,10)\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>當然你想要指定某欄或某列就要看你的資料長相如何來決定囉。\u003C\u002Fp>\n\u003Ch2>getDataRange\u003C\u002Fh2>\n\u003Cp>這個函式會指定這張分頁的所有資料(有資料的範圍)，並且回傳所有資料，像是以下\u003C\u002Fp>\n\u003Cpre>\u003Ccode>getRange(1, 1, sheet.getLastRow(), sheet.getLastColumn())\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>getRangeList\u003C\u002Fh2>\n\u003Cp>有個跟getRange很像的getRangeList，則是可以回傳多個範圍內的集合，效果不同。\u003C\u002Fp>\n","2023-04-27T20:00:31","\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2023%2F04%2Fe8c116c7-f85f-465b-abdc-34e0dcb28b9f.jpeg",{"name":88,"link":89},[103],{"name":54,"slug":54},"\u002Fblog\u002Fgoogle-sheet的app-script中getrange-與-getdatarange的差異",{"id":106,"slug":107,"title":108,"description":109,"content":110,"date":111,"image":112,"imageAlt":108,"author":113,"categories":114,"path":116,"minRead":29},3352,"officeoutlook使用imap等待時間過長的解決方式","[Office]Outlook使用IMAP等待時間過長的解決方式","outlook使用IMAP等待時間過長 家人有工作上需求使用了Office的Outlook，設定gmail的I […]","\u003Ch1>outlook使用IMAP等待時間過長\u003C\u002Fh1>\n\u003Cp>家人有工作上需求使用了Office的Outlook，設定gmail的IMAP來收發信件。最近突然收發過慢，等待時間極長，原本約60秒可以完成的傳送接收，變成要等約接近10分鐘，實在不對勁，因此協助處理了一下。\u003C\u002Fp>\n\u003Ch2>幾種處理方式\u003C\u002Fh2>\n\u003Ch3>刪除不要的信件\u003C\u002Fh3>\n\u003Cp>就單純減少不要的信件，因為IMAP是透過目錄方式進行同步，越多信件就有可能拖慢同步速度。\u003C\u002Fp>\n\u003Ch3>壓縮ost或pst\u003C\u002Fh3>\n\u003Cp>如果還有很多需要的信件，那可以透過設定壓縮outlook的資料檔案，流程如下：\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fsupport.microsoft.com\u002Fzh-tw\u002Foffice\u002F%E6%B8%9B%E5%B0%91%E4%BF%A1%E7%AE%B1%E5%92%8C-outlook-%E8%B3%87%E6%96%99%E6%AA%94%E6%A1%88%E7%9A%84%E5%A4%A7%E5%B0%8F-pst-%E5%92%8C-ost-e4c6a4f1-d39c-47dc-a4fa-abe96dc8c7ef\" title=\"文件\">參考文件\u003C\u002Fa>\u003C\u002Fp>\n\u003Col>\n\u003Cli>刪除任何您不想保留的專案，並清空 刪除的郵件 資料夾。\u003C\u002Fli>\n\u003Cli>按一下[&gt;帳戶設定&gt;[帳戶設定&gt; 。 \u003C\u002Fli>\n\u003Cli>在 [ 資料檔案」 選項卡上，按一下要壓縮的資料檔案，然後按一下 [ 設定&gt;。\u003C\u002Fli>\n\u003Cli>注意：如果您使用的是 Exchange 或 Outlook.com 電子郵件帳戶，您必須另外按一下 [進&gt; Outlook 資料檔案設定。\u003C\u002Fli>\n\u003Cli>在 Outlook 資料檔案對話方塊中，按一下 [ 立即 壓縮，然後按一下 [確定。\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>重新進行帳號設定\u003C\u002Fh3>\n\u003Cp>移除原本帳號，然後重新設定gmail的IMAP並且重新同步。\u003C\u002Fp>\n\u003Ch3>重新修復Outlook\u003C\u002Fh3>\n\u003Cp>我進行上述幾種方式後，發現問題依舊還是很慢，如果你也遇到類似狀況，那就試試看重新修復Outlook，我是使用Outlook2019，修復方式可以參考\u003Ca href=\"https:\u002F\u002Fsupport.microsoft.com\u002Fzh-tw\u002Foffice\u002F%E4%BF%AE%E5%BE%A9-office-%E6%87%89%E7%94%A8%E7%A8%8B%E5%BC%8F-7821d4b6-7c1d-4205-aa0e-a6b40c5bb88b\" title=\"此篇\">此篇\u003C\u002Fa>\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>以滑鼠右鍵按一下 [開始] 按鈕 Windows 8 和 Windows 10 中的 Windows [開始] 按鈕 (左下角)，然後從快顯功能表選取 [應用程式與功能]。\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>顯示應用程式與功能的 [開始] 功能表的螢幕擷取畫面\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>選取要修復的 Microsoft Office 產品，然後選取 [修改]。\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>我選了修復Office，會直接對安裝的所有Microsoft Office 產品進行修復\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>依照畫面上的指示完成修復。\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>修復完後就正常了....真有你的 Microsoft Office啊！\u003C\u002Fp>\n","2023-02-07T10:00:08","",{"name":88,"link":89},[115],{"name":54,"slug":54},"\u002Fblog\u002Fofficeoutlook使用imap等待時間過長的解決方式"]