TOCOL、TOROW,把資料拉成一條!

TOCOL、TOROW,把資料拉成一條!

更新於 發佈於 閱讀時間約 8 分鐘

今天要來介紹的是 TOCOL 和 TOROW 這兩個最近新增的函式,它們的功用是可以把資料拉〜成一條,而 TOCOL 則是把資料轉成一欄、而 TOROW 是把資料轉成一列。

示範一個 TOCOL 的效果:

raw-image

我這邊把 C2 到 E11 這個範圍內的儲存格,全部拉成長長的一欄了。

TOCOL 跟 TOROW 很適合展開陣列外,後續還可以再跟其他的函式配合,像是 QUERY、FILTER、IMPORTRANGE 之類的都很不錯。這就是 TOCOL 跟 TOROW 的威力,而且語法也不會太複雜,今天就來帶著大家一起看看!

來延伸閱讀一下下:


語法說明與範例

💡 歡迎到這個試算表來看看怎麼做、複製一份一起練習喔!

TOCOL 應該是從「to column」來的,意思是「轉換成欄」,而 TOROW 也是「to row」,意思是「轉換成列」。我們來看看語法:

=TOCOL(範圍, [略過空白或錯誤], [掃描模式])
=TOROW(範圍, [略過空白或錯誤], [掃描模式])
  • 範圍:想要轉換的範圍。
  • 略過空白或錯誤:選填,預設是 0。你可以用特定的數字,告訴試算表在範圍裡遇到空白或錯誤(#N/A、#ERROR 等等的)時該用什麼模式處理。等等說明!
  • 掃描模式:選填,預設是 false。你可以在這邊輸入布林值:
true:逐欄(從上到下)掃描指定範圍
false:逐列(從左到右)掃描指定範圍

這邊的掃描模式是怎麼運作的,等等也會說明!



「略過空白或錯誤」參數

可以指定的模式跟代表的數字有:

0:保留所有值,不略過任何值
1:略過空白
2:略過錯誤
3:略過空白和錯誤

如果在這邊填了 1、2、3,試算表在讀取範圍的時候,會跳過這類有空白或錯誤資料,直接接到下一個沒有這種資料的儲存格。

例如說我有個這樣的資料範圍:

raw-image

我塞了幾個空白的儲存格、也塞了幾個有錯誤的。

我在這邊用 TOCOL 示範把 A2 到 C10 拉成一欄時,0、1、2、3 這四個模式的執行結果(可參照練習試算表的「略過空白或錯誤」模式示範)。語法都是:

=TOCOL(A2:C10, 模式號碼)
raw-image

你可以稍稍比較一下,再決定一下你想要什麼樣的結果!我個人比較喜歡用最右邊的模式 3,可以在把範圍拉成一條的同時,也把空白和錯誤過濾掉,很方便。


「掃描模式」參數

剛剛提到了兩種掃描的模式,可以用 true 和 false 來指定:

true:逐欄(從上到下)掃描指定範圍
false:逐列(從左到右)掃描指定範圍

這邊逐欄的「從上到下」、還有逐列的「從左到右」是什麼意思呢?

你可以想像一下在執行這兩個函式的時候,Google 試算表會拿一把剪刀,把你的範圍裁剪、黏貼成一欄或是一列。

舉例來說,把這模式設定成「true」的逐欄掃描的時候,試算表會把下圖的 A 欄剪下來、把 B 欄剪下來、把 C 欄剪下來,再拼在一起:

=TOCOL(A2:C10,,true)
raw-image

而 false 的話,則是「逐列掃描」,函式就會從範圍的第一列開始由左往右裁剪、再來是第二列、第三列⋯⋯:

=TOCOL(A2:C10,,false)
raw-image

所以掃描模式會影響顯示結果。你可以比較寫 true 跟 false 的差別,看看你需要哪一種;相對地,如果你不在意顯示結果、只是想把資料拉成一條的話,這邊不指定任何模式也完全 OK。


小補充:TOCOL 跟 FLATTEN 的差異?

你可能之前聽過 FLATTEN 這個函式,功能也可以把多欄併成一欄。聽到這裡,感覺功能跟 TOCOL 很像嗎?的確是的,但有兩點關鍵的差異:

  • FLATTEN 的掃描模式只有一個(從左到右),但 TOCOL 有兩種可以選擇。
  • FLATTEN 不會略過空白的值,但 TOCOL 可以略過空白,還多了可以略過回傳錯誤儲存格的模式。

整體而言, TOCOL 可以做更細緻的設定、但 FLATTEN 不行,所以我會推薦你試著擁抱新技術,用 TOCOL 來解決結合範圍的問題!


應用

UNIQUE + TOCOL:在多欄的範圍中取唯一值

💡 可以打開示範試算表的「UNIQUE + TOCOL」一起練習喔!

簡單示範一下 TOCOL 的應用層面吧!假如我這邊有份名單:

raw-image

這邊多多少少有些重複的地方,我想找到這份名單裡面不重複的名字有誰。

我的想法是利用之前的文章介紹過的 UNIQUE 的函式,可以在一欄或一列裡面,篩選出獨一無二的值,但在這之前要先用 TOCOL 把這個名單拉成一欄才行。這麼一來,就會推出:

=UNIQUE(TOCOL(A2:D7))

來看看效果:

raw-image

這樣就完成啦!如果想要在多欄或多列做同樣的操作,就要搭配 FLATTEN 函式來達成(延伸閱讀:三招移除重複資料)。但就像前面提到的,因為 TOCOL 可以做更細緻的設定,遇到空白或是錯誤的資料還可以先行處理,我會比較偏好使用 TOCOL。


TOCOL + VSTACK:把多個表格全部拉成一欄

💡 可以打開示範試算表的「TOCOL + VSTACK」一起練習喔!

TOCOL 也當然可以搭配前些日子介紹的 VSTACK(延伸閱讀:VSTACK、HSTACK:堆疊範圍、統整資料),把多個表格的資訊變成一欄。

假如我們有幾個這樣的表格:

raw-image

我想把各個組別裡面的國家名單取出來,變成一欄清單的話,怎麼做呢?

我們總之可以用 VSTACK,把這些表格先併在一起:

=VSTACK(A2:B4, D2:E4, A7:B9, D7:E9)

目前看起來像這樣子:

raw-image

合併是合併了,接下來就是對這個結果用 TOCOL 把這些數值全部拉成一欄就解決了:

=TOCOL(VSTACK(A2:B4, D2:E4, A7:B9, D7:E9))
raw-image

但這個結果應該還可以更好!我們還可以在 TOCOL 的時候也可以善用剛剛的「略過空白或錯誤」模式,把空白的儲存格過濾掉:

=TOCOL(VSTACK(A2:B4, D2:E4, A7:B9, D7:E9), 1)

這邊用 3 號模式也可以:

=TOCOL(VSTACK(A2:B4, D2:E4, A7:B9, D7:E9), 3)

得到的結果是:

raw-image

搞定囉!這樣就完成了。


如果你喜歡這次的文章,歡迎你透過這些方法支持我:
・按下愛心、按下儲存
・留言告訴我你的想法
・加入喜特先生的官方沙龍,即時看到我發布的教學
・付費訂閱喜特先生的官方沙龍,加入每月小額訂閱方案
・追蹤喜特先生的 Facebook
・按這邊小額贊助我的創作!

想要看更多文章,歡迎來到我的 Notion 頁面找找有沒有你需要的資源喔!

我是喜特先生,Mr. Sheet,我們下個教學見!



avatar-img
喜特先生官方沙龍
17.6K會員
151內容數
簡潔,快速,有效, 讓你的日常生活、工作生產力大提升! ___ 快按「加入」,馬上追蹤所有喜特先生的更新,有 Google 試算表教學、Google Apps Script 的研究、數據分析課程的開箱,還有 Google 試算表疑難雜症的解題分享唷!💪
留言
avatar-img
留言分享你的想法!
喜特先生官方沙龍 的其他內容
請你試著在 Google 試算表的儲存格上打這個,按下 Enter: =WHATTHEFOXSAY() 會有神奇的事情發生喔 ✨
上次介紹了 REPLACE 函式,可以用來取代儲存格內的特定文字。其實我們還有一個相似的函式叫 SUBSTITUTE,也有取代的功能,不過當然有一點不一樣的地方!今天會分享語法的範例,還有跟 REPLACE 的差異在哪。一起來看看!
這是文字處理基礎函式的第四篇文章,今天要來介紹 REPLACE 函式! REPLACE 可以取代掉儲存格內的文字,今天會分享一下它語法怎麼寫、也有兩個實際應用的案例。一起來看看! REPLACE 語法 REPLACE 的語法長了一點點,有四個參數要設定: =REPLACE(要取代
請你試著在 Google 試算表的儲存格上打這個,按下 Enter: =WHATTHEFOXSAY() 會有神奇的事情發生喔 ✨
上次介紹了 REPLACE 函式,可以用來取代儲存格內的特定文字。其實我們還有一個相似的函式叫 SUBSTITUTE,也有取代的功能,不過當然有一點不一樣的地方!今天會分享語法的範例,還有跟 REPLACE 的差異在哪。一起來看看!
這是文字處理基礎函式的第四篇文章,今天要來介紹 REPLACE 函式! REPLACE 可以取代掉儲存格內的文字,今天會分享一下它語法怎麼寫、也有兩個實際應用的案例。一起來看看! REPLACE 語法 REPLACE 的語法長了一點點,有四個參數要設定: =REPLACE(要取代