質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Q&A

解決済

2回答

1799閲覧

重複した行を削除し、1行にまとめる方法について

bah91929

総合スコア19

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

0グッド

0クリップ

投稿2020/05/08 07:37

編集2020/05/09 00:34

ご回答者様

いつもお世話になっております。

早速ご質問させていただければと存じます。

以下、添付キャプチャのように、重複した行を削除し、1行にまとめる方法を教えていただきたく存じます。
イメージ説明
A~C列のデータをもとに、E~G列のように表示させたいと考えておりまして、E列にはA列のデータを、F列にはB列のデータを、G列にはC列のデータをそれぞれ重複を削除して抽出したく存じます。

例えば、A列には「ドラゴンボールZ2」という商品名が重複しているので、これを1つにしたいのですが、
単純にE2セルに=UNIQUE(A2:C14)とすると、以下キャプチャのように(当然ですが)「ドラゴンボールZ2」が1つになりません。
イメージ説明
各「ドラゴンボールZ2」の行にはB列C列ともに「B000068GWTと4902425335681」が入っている行もあれば、
B列の「B000068GWT」のみやC列の「4902425335681」のみ入っている行もあり、1つの「ドラゴンボールZ2」とそれぞれ1つずつのB列C列のデータ「B000068GWTと4902425335681」を表示させたいと考えています。
(1つ目のキャプチャのE~F列の状態)

「ドラゴンボールZ2」だけでなく、A列のその他の商品名「JUSTDANCE(R)WiiU」や「モデル☆おしゃれオーディションドリームガール-3DS」のようにB列、C列のいずれかしか埋まってない場合もありますので、単純なUNIQUE関数では実現出来ませんでした。
(他の手法も考えたのですが、うまくいきませんでした)

上記、ご回答の程よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sawa

2020/05/08 10:46

どういうロジック、と言うかというか条件でやりたいのか不明です。もうちょっと説明を。
bah91929

2020/05/08 12:59

ご指摘ありがとうございます。 ただいま質問内容を修正いたしましたので、可能でございましたらご教授の程よろしくお願いします。
guest

回答2

0

ベストアンサー

B列、C列のいずれかしか埋まってないケースもあるということなので、なにをもって重複とするかを定める必要があります。「商品名 A列の重複 = 重複」と定義して、UNIQUEで抽出した商品名に合致する ASINコード B列、JANコード C列を 引っ張ってくるという処理が、ご要望に合うかなと。

={UNIQUE(A2:A14),ARRAYFORMULA({IFERROR(VLOOKUP(UNIQUE(A2:A14),UNIQUE(FILTER($A$2:$B$14,$A$2:$A$14<>"",$B$2:$B$14<>"")),2,FALSE),),IFERROR(VLOOKUP(UNIQUE(A2:A14),UNIQUE(FILTER({$A$2:$A$14,$C$2:$C$14},$A$2:$A$14<>"",$C$2:$C$14<>"")),2,FALSE),)})}

・A列のみをUNIQUE関数で重複統合 (結果 1列目)
・VLOOKUPで重複統合後の商品名に合致する ASINコードを 空白除去+UNIQUE処理したAB列から引っ張ってくる (結果 2列目)
・同じくVLOOKUPで重複統合後の商品名に合致する JANコードを 空白除去+UNIQUE処理したAC列(B列を飛ばして結合)から引っ張ってくる (結果 3列目)

という処理をARRYAFORMULA、{,}を使って、一つの式にまとめています。IFERRORで重複統合した ASINやJANが空欄というケースにも対応させています。

商品名が同じで 違うASINコードやJANコードがあるってパターンには対応できません。
それだとまさに「なにをもって重複とするか?」の定義が必要になってきます。

投稿2020/05/09 05:45

sawa

総合スコア3002

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bah91929

2020/05/20 04:07

sawa様、ご連絡が遅くなり大変申し訳ございません。体調を大きく崩しておりました。 コードの作成本当にありがとうございます!{}とARRAYFORMULAを組み合わせた方法は思いつきませんでした。 この度は非常に丁寧な解説に感謝申し上げます。ありがとうございました。
guest

0

シンプルに考えてよいなら、A、B、C列が全て埋まってるものに絞ってから重複排除って処理で解決するなら簡単です。

=UNIQUE(FILTER(A2:C14,A2:A14<>"",B2:B14<>"",C2:C14<>""))

ただ、B列、C列のいずれかしか埋まってないパターンを完全に切り捨ててるので、
そういうケースも想定される場合は、やり方を変えないといけないです。

投稿2020/05/08 15:02

sawa

総合スコア3002

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bah91929

2020/05/09 00:28

sawa様 A、B、C列が全て埋まってる場合に対する解法を教えてくださり、 誠にありがとうございます。 ご指摘いただきました通り、B列、C列のいずれかしか埋まってないパターンもございますので、 質問文と添付キャプチャを修正いたしました。 可能でございましたら、B列、C列のいずれかしか埋まってないパターンでも重複排除で抽出できる方法を教えていただけますと幸いです。 (スプレッドシートに作業列を追加するなどは可能です)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問