表計算ソフト ヨドバシ.comの注文リストを1行に変換 ~複数行を一行にする

投稿日:2025/11/10 更新:2025/11/10 コメント 0件 ソフトウェア , , , , , ,


ヨドバシ.comとかでの買い物はエクセル系の表計算ソフト(WPS SpreadSheets)でリスト化しているんですが、それをするのがちょっと手間なので簡単にできるようにしてみました。

 

ヨドバシ.comの注文リストを1行に変換 ~複数行を一行にする

下図はヨドバシ.comの注文確定画面です。

これを範囲選択でコピーします。この時に先頭の商品画像を選択すると表計算ソフトに貼り付けた際に1行目に空白が表示されます。尚、配達日時が異なる商品がある場合は一時的に「まとめてお届け」にしてコピーします。

コピーしたものを「形式なしで貼り付け」で貼り付けると下図のようになりますがこれを商品ごとに1セル(行)にしたい訳です。B列の数字は個数です。

C1セルを選択して以下の計算式を記入します。式の意味は選択した文字列を足すことを意味しています。

=A1&A2&A3&B5

このままだと各項目との間にスペースがないので見づらいので修正します。

各項目間に「&” “」を追加して半角スペースを追加します。

=A1&" "&A2&" "&A3&" "&B5

更に個数の項目も見やすいように修正。

=A1&" "&A2&" "&A3&" ("&B5&"個)"

このまま使用するとA1セルが空の場合に「(個)」とだけ表示されるのでIF関数を使ってセルが空の場合は表示しないように設定します。

=IF(A1="","",A1&" "&A2&" "&A3&" ("&B5&"個)")

このままオートフィルを行うと変な風になるので更にひと手間加えます。

各商品は6行ごとに並んでいるのでその行数分だけ範囲選択してからオートフィルを行います。

するといい感じにデータを抽出できます。

空白行を削除するためにD1セルに以下の関数で記載してn行おきにデータを抽出するようにします。

=INDEX(C:C,(ROW()-1)*6+1)

▼参考リンク
INDEX関数でn行おきにデータを抽出する-ROW関数

これで複数行の注文リストを1行(セル)にまとめることができます。

複数の行をひとつのセルとしてコピーしたいのでCONCATENATE関数で文字を連結し、CHAR関数で改行しています。CONCAT関数があればセルの範囲指定ができるようですが筆者が使用しているソフトではできないようです。下記は20行まで対応した式になります。

=CONCATENATE(D1,CHAR(10),D2,CHAR(10),D3,CHAR(10),D4,CHAR(10),D5,CHAR(10),
D6,CHAR(10),D7,CHAR(10),D8,CHAR(10),D9,CHAR(10),D10,CHAR(10),
D11,CHAR(10),D12,CHAR(10),D13,CHAR(10),D14,CHAR(10),D15,CHAR(10),
D16,CHAR(10),D17,CHAR(10),D18,CHAR(10),D19,CHAR(10),D20,CHAR(10))

▼参考記事
【Excel】大量のセルを「&」で連結するのは非効率!? 区切り文字や改行にもスマートに対応できる文字列連結テク

尚、結果が表示されるセルは「折り返して全体を表示する」を有効にしておく必要があります。

こんなマニアックな情報を真似する方もそう多くないとは思いますが、あとはテンプレートとして使いやすいようにB、C、Dセルを非表示にしたり、オートフィルの行数をたくさん作っておけば多くの注文にも対応できます。

20個まで対応したものを作成して実際に使ってみたものです。

尚、このデータをそのまま表計算ソフトにコピペする際には値のみを貼り付けるか、一旦、メモ帳などに貼り付けて書式を無くす必要があります。

 

 




アマゾンの注文リストを1行に変換

うまくいったのでアマゾン用も作成したいんですが、あそこのサイトは商品の間にプライムの広告が入ったりしてレイアウトが変わるのでこの方法ではちょっと難しいかも知れません。スクレイピング(Python)を使えばできそうですが規約違反に当たるみたいです。

Copilotにコピペして「商品名と価格をリスト化して」とお願いするのが早そうです。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です