目次
重複した行をマージすることは、最も複雑なタスクの1つです。 Googleの数式がどのように役立つのか、また、すべての作業を代行してくれる賢いアドオンを紹介しましょう。
Google Sheetsで同じ値を持つセルを結合する関数
Google Sheetsにこの種のタスクのための関数がないとは思いませんでしたよね? ;) ここでは、スプレッドシートの行を統合し、重複するセルを削除するために必要な数式を紹介します。
CONCATENATE - レコードを結合するためのGoogle Sheetsの関数と演算子
単に重複を削除するだけでなく、重複した行をまとめることを考えたとき、最初に思いつくのはGoogle SheetsのCONCATENATE関数とアンパサンド(&)という特別な連結演算子です。
例えば、見たい映画のリストがあり、ジャンル別に分類したいとします。
- Google Sheetsでは、値の間にスペースがある場合のみ、セルを結合することができます。
=concatenate(b2," ",c2," ",b8," ",c8)
=B2&" "&C2&" "&B8&" "&C8
- また、スペースと他のマークを使って、重複する行をまとめることもできます。
=concatenate(a3,": ",b3," (",c3,"), ",b6," (",c6,") ")
=A3&」:「&B3&」(「&C3&」)、「&B6&」(「&C6&」)「」。
行がマージされたら、数式を取り除き、このチュートリアルの例によってテキストのみを保持することができます:Google Sheetsで数式を値に変換します。
この方法は簡単なようで、理想とは程遠い。 重複の位置を正確に把握する必要があり、それを数式に指摘するのはあなた自身だからだ。 では、小さなデータセットならこれで済むが、大きくなったらどうするか?
UNIQUE + JOINでセルを結合し、データを保持する
この数式は、Google Sheetsの重複を発見し、ユニークなレコードを持つセルをマージします。 しかし、あなたはまだ担当者であり、どこを見るかを数式に示す必要があります。 同じToWatchリストでどのように動作するかを見てみましょう。
- E2でGoogle SheetsのUNIQUEを使って、A列のジャンルをチェックしています。
=UNIQUE(A2:A)
この式は、元のリストで繰り返しがあってもなくても、すべてのジャンルのリストを返します。 つまり、A列から重複を削除しています。
ヒント:UNIQUEは大文字と小文字を区別するので、同じレコードを同じテキストケースに持ってくるようにしてください。 このチュートリアルは、それを一括して素早く行うのに役立ちます。
ヒント:A列にさらに値を追加すると、数式は一意のレコードで自動的にリストを展開します。
- そして、Google SheetsのJOIN関数を使って次の数式を作ります。
=join(", ",filter(b:b,a:a=e2))です。
この式の要素はどのように作用するのでしょうか?
- FILTERはA列をスキャンしてE2の値のすべてのインスタンスを探し出し、見つかったらB列から対応するレコードを取り出す。
- JOINは、これらの値をカンマで区切って1つのセルにまとめる。
数式を下にコピーすると、すべてのタイトルがジャンル別にソートされます。
注:JOINは一度に一つの列に対して機能するので、年数も必要な場合は、隣の列に計算式を作成する必要があります。
=join(", ",filter(c:c,a:a=e2)))です。
このオプションは、Google Sheetsに複数の行を1つにまとめるための関数を装備しています。 しかも、ほとんど自動的に行われます。 完璧な解決策は記事の最後まで持っていくつもりです。 でも、すぐにでも飛びつきますよ(笑)
Google Sheetsで重複した行を削除するQUERY関数
もうひとつ、巨大なテーブルを操作するための機能として、QUERYがあります。 最初は少し難しく感じるかもしれませんが、一度使い方を覚えてしまえば、表計算ソフトの真の相棒になるでしょう。
以下はQUERY関数そのものです。
=QUERY(data, query, [headers])その仕組みは?
- データ (必須) - ソース・テーブルの範囲です。
- クエリ (必須) - 特定のデータを取得するために条件を決定するためのコマンド群。
ヒント:全コマンドの一覧はこちらで確認できます。
- ヘッダー (オプション) - ソース・テーブルのヘッダ行の数。
簡単に言うと、Google SheetsのQUERYは、指定した条件に基づいて、いくつかの値のセットを返します。
例1
まだ見ていないコミック映画だけを手に入れたい。
=QUERY(A1:C, "select * where A="Comic Book"")
この数式は、私のソーステーブル全体 (A1:C) を処理し、コミックブック映画 (A="Comic Book") のすべての列 (select *) を返します。
ヒント:テーブルの最後の行(A1:C)を意図的に指定しないのは、テーブルに他の行が追加された場合に、数式を柔軟にして新しいレコードを返すようにするためです。
このように、フィルタと同じような働きをするのですが、実際にはもっと大きなデータ、つまり計算が必要な数値が含まれることがあります。
ヒント:Google Sheetsのテーブルで重複を見つける他の方法は、この記事で確認してください。
例2
例えば、公開中の最新映画の週末興行成績を調べているとします。
Google SheetsのQUERYを使って、重複を排除し、週末ごとに映画1本あたりの収入合計をカウントしています。 また、ジャンルごとにアルファベットをつけています。
=QUERY(B1:D, "select B,C, SUM(D) group by B,C")
注 ふれこむ コマンドの後に、すべての列を列挙する必要があります。 選ぶ そうでない場合は、この式は機能しません。
ムービーでレコードを並べ替えるには、単に ふれこむ :
=QUERY(B1:D, "select B,C, SUM(D) group by C,B")
例3
例えば、あなたが書店を経営しているとして、支店にあるすべての本の在庫を管理しているとします。 そのリストは何百冊にも及びます。
- ハリー・ポッターシリーズの宣伝のため、J.K.ローリングが書いた本が何冊残っているか確認することにしました。
=QUERY('在庫ありのコピー'!A1:D, "select A,B,C,D where A="Rowling"")
- さらに、ハリー・ポッターシリーズだけを残し、他の物語を省くことにしました。
=QUERY('在庫あり'!A1:D, "select A,B,C,D where (A='Rowling' and C contains 'Harry Potter') "参照)
- Google SheetsのQUERY機能を使えば、これらの書籍をすべてカウントすることも可能です。
=QUERY('在庫あり'!A1:D, "select A,B, sum(D) where (A='Rowling' and C contains 'Harry Potter')グループバイエー、ビー")
とりあえず、Google SheetsのQUERY関数がどのように「重複を削除」するのか、ご理解いただけたと思います。 誰でも使えるオプションではありますが、私にとっては、重複した行をまとめるための遠回りの方法という印象があります。
ヒント:QUERYは非常に強力で、シート内の重複をマージするだけでなく、テーブル全体をマッチングさせることができます。
さらに、使用するクエリやその適用ルールを覚えるまでは、この機能はあまり役に立ちません。
重複する行を結合する最速の方法
複数の行を重複して結合する簡単な解決策を見つけることをあきらめたとき、Google Sheets用のアドオンが素晴らしい入り口になります。)
重複行の結合は、繰り返し記録されている列をスキャンし、他の列の対応するセルを結合し、これらの記録を区切り文字で分離し、数字を統合します。 すべて同時に、数回のマウスクリックで実行できます。
数百行に及ぶ店頭の本のリストを覚えていますか? このツールがどのように管理するのか見てみましょう。
ヒント:ユーティリティはPower Toolsの一部なので、先にインストールしてから、直接 マージ&コンバイン(Merge & Combine のグループです。
次に、アドオンのアイコンをクリックして開きます。
- アドオンが起動したら、重複している行を結合したい範囲を選択します。
- コラム
- これらのレコードを結合する方法: 結合または計算
- セルをテキストと結合するためのデリミタ
- 数算出関数
私の場合、1人の著者の本をすべて1つのセルに集め、改行で区切るようにしたい。 同じタイトルのものがあれば、アドオンで一度だけ表示するようにします。
数量については、著者ごとに全巻集計して構わない。 重複するタイトルがある場合は、その分を合算することになる。
このツールは、私の本のリストにある重複した行を結合しました。 これは、私のデータがどのように見えるかの一部分です。
ヒント: また、1つのシートを複数のシートに分割して、著者ごとにすべての書籍を含む別のテーブルを作成したり、Google Sheetsで重複する行を強調表示したりすることも可能です。
アドオンの使い方を簡単にご紹介します。
また、ツールを紹介する短いビデオもご覧ください。
シナリオを使用して重複を半自動でマージする。
Combine Duplicate Rowsのもう一つの可能性は、その使用を半自動化することです。
シナリオを作成することで、同じデータセットや異なるデータセットに対して、同じ設定を簡単に再利用することができます。
シナリオの名前と、処理するシートと範囲を指定します。
ここで保存した設定は、Google Sheetsのメニューからすぐに呼び出すことができます。 このアドオンは、重複する行の結合をすぐに開始するので、余分な時間を節約することができます。
Google Sheetsは「暗くて恐ろしい」ツールですが、このツールとそのオプションについてもっと知ることをお勧めします。)