Tags列をCSVで一括編集するときに既存タグを消さないための考え方

結論:CSVインポートは「上書き」だから、元のタグを自分で保持しないと消える

Shopifyの商品CSVでTags列を編集してインポートすると、そのセルの内容で既存タグがすべて置き換わります。新しいタグだけを書いてインポートすると、書かなかったタグはすべて消える仕組みです。これを防ぐには、①現在のTags列をエクスポートして確認する、②追加したいタグだけを追記する、③インポート前に差分を検証するという3ステップを踏むのが最も確実です。


Tags列の仕組みをおさらいする

CSV内でのタグの書式

Shopifyの商品CSVでは、Tags列は1つのセル内にカンマ区切りでタグを並べる形式です。たとえば次のようになります。

新商品,セール,夏季コレクション

ここで気をつけたいポイントは2つあります。

  • セルの区切り文字(CSVのカンマ)と、タグの区切り文字(同じくカンマ)が同じ記号なので、スプレッドシートで開くとタグが別列に分裂することがある
  • タグ名にカンマを含めることはできない(カンマは区切りとして扱われる)

インポート時の挙動:完全上書き

CSVインポートでTags列を含めると、その商品のタグ全体がCSVの値で上書きされます。「追加」ではなく「置き換え」です。つまり次のような挙動になります。

操作 元のタグ CSVに書いたTags インポート後
タグを追加したい A, B A, B, C A, B, C(正しい)
タグを追加(間違い) A, B C C(AとBが消えた)
特定タグを削除したい A, B, C A, C A, C(Bだけ削除された)
Tags列を空にした A, B, C (空) なし(全タグ消去)
Tags列を省略した A, B, C (列なし) A, B, C(変更なし)

Tags列そのものをCSVから省略した場合は既存タグが維持されます。しかし、他の列も編集している場合はTags列を省略できないことが多く、結局は「正しいタグ一覧を書く」必要が出てきます。


安全なタグ編集ワークフロー

ステップ1:現在のTags列をエクスポートして保存

まず、管理画面から商品CSVをエクスポートします。このとき、Handle(ハンドル)列とTags列のペアを別シートにコピーして保存しておきます。これが「変更前」の記録です。

エクスポート時の注意点:

  • 「すべての列」を選んでエクスポートする(一部列だとTagsが含まれないことがある)
  • エクスポート直後のファイルを「変更前」としてそのまま開かず別名保存する(誤操作防止)
  • スプレッドシートで開くときは「区切り文字としてカンマ」を正しく指定する

ステップ2:追加・削除したいタグを反映する

作業用シートでTags列を編集します。ここでの鉄則は「既存のタグ一覧に対して、追記または削除を行う」ことです。新しいタグだけを書くのではなく、残したいタグもすべて含めます。

たとえば「セール」というタグを全商品に追加したい場合:

変更前: 新商品,夏季コレクション
変更後: 新商品,夏季コレクション,セール

「旧価格」というタグを削除したい場合:

変更前: 旧価格,新商品,夏季コレクション
変更後: 新商品,夏季コレクション

スプレッドシートの関数を使えば、追加作業を半自動化できます。

=IF(A2="", "", IF(B2="", "セール", B2 & ",セール"))

ここでA2がHandle、B2が元のTags列だとします。元のタグが空なら「セール」だけ、すでにタグがあれば末尾に「,セール」を追加します。

ステップ3:差分を検証してからインポート

インポート前に、変更前と変更後のTags列を比較します。この比較で意図しないタグの消失や、タグの重複を発見できます。

検証のポイント:

  1. タグが減っていないか — 追加しかしていないはずなのにタグ数が減っていたら、上書きで消えた可能性が高い
  2. 重複タグがないか — 「セール,セール」のように同じタグが2回入っていないか確認する(Shopify側では自動でまとめられるが、見栄えが悪い上に意図の混同を招く)
  3. 空セルになっていないか — 編集ミスでTags列が空になっていると、インポート時に全タグが消える
  4. カンマの前後にスペースがないか — 「セール, 新商品」のようにスペースが入ると「 新商品」(先頭スペース付き)という別タグとして登録される

タグ操作別のCSV上の扱いまとめ

やりたいこと CSVでの正しい書き方 よくある間違い
タグを追加する 既存タグ + 「,」 + 追加タグ 追加タグだけを書いて既存タグを消す
特定のタグを削除する 残したいタグだけを列挙する 削除したいタグだけを空にする(全タグ消去になる)
全タグを入れ替える 新しいタグ一覧を書く なし(この操作自体が上書きと同義)
タグを一切変更しない Tags列をそのまま残す、または列ごと省略する Tags列を空にする
タグを全削除する Tags列を空にする 全削除のつもりでTags列を省略する(何も変わらない)

自動化できる確認と人間の判断

スクリプトや関数で自動チェックできること

  • 重複タグの検出 — Tags列をカンマで分割し、同じ値が2回以上出現していないか確認
  • 前後スペースの検出 — タグの前後に空白文字が含まれていないか正規表現で検査
  • 空セルの検出 — Tags列が空の行が意図的かどうかのフラグ付け
  • 変更前後の差分抽出 — 2つのタグ一覧を比較し、追加されたタグと削除されたタグをリスト化
  • タグ数の急増・急減の警告 — ある商品のタグ数が大幅に変わっている場合にアラートを出す

これらはスプレッドシートの関数やPythonスクリプトで比較的かんたんに実装できます。

人間が判断すべきこと

  • どのタグを残し、どのタグを削除するか — ビジネス判断が必要な部分は自動化できない
  • キャンペーン終了後のタグ整理 — 「2025夏セール」など期限付きタグを残すべきかどうかの判断
  • 類似タグの統合 — 「sale」「セール」「SALE」など表記ゆれをどう扱うか
  • タグの命名規則 — 新しいタグを追加するとき、既存の命名規則に合っているかの確認

よくあるトラブルと対処

タグが大量に消えてしまった

インポート後に「タグが消えた」と気づいた場合、直前のCSVエクスポートファイルがあれば復元できます。そのファイルをそのまま再インポートすれば、元のタグ一覧に戻ります。エクスポートファイルを上書き保存していないことが前提です。

スプレッドシートでタグが別の列に散らばった

これはCSVのカンマ区切りとタグのカンマ区切りが同じ記号だから起きます。対策は次のとおりです。

  • スプレッドシートのインポート設定で「区切り文字の自動検出」をオフにし、手動でカンマを指定する
  • Excelの場合は「データ」→「テキストから」でカンマ区切りを指定する
  • Googleスプレッドシートなら、インポート時に「区切り文字の種類」をカンマに設定する

タグにカンマを含めたい

Shopifyの仕様上、タグ名にカンマを含めることはできません。カンマは常にタグの区切りとして解釈されます。「1,000円以上」というタグを使いたい場合は、「1000円以上」のようにカンマを使わない表記に変更する必要があります。


タグ編集前のチェックリスト

確認項目 確認方法
変更前のTags列を保存したか エクスポート直後のCSVを別名保存
追加したいタグを既存タグに追記したか Tags列に「既存 + 追加」の形式で書いたか確認
Tags列に空セルがないか フィルタで空白行を確認
重複タグがないか 関数またはスクリプトで重複検出
カンマの前後に余計なスペースがないか 正規表現で前後空白を検索
変更前後でタグ数の差が意図通りか 差分比較ツールで増減を確認

まとめ

Shopifyの商品CSVでTags列を編集するときは、「上書き」という仕様を前提に手順を組むことが大事です。具体的には、変更前のTags列を保存しておき、それに追記・削除したうえで差分を確認してからインポートするという流れを徹底すれば、意図せずタグを消す事故を防げます。自動チェックで形式の問題をふるいにかけ、ビジネス判断は人が行うという分担も取り入れると、ミスが減り作業も速くなります。

タグの一括編集で困ったことがあれば、以下の情報をご用意のうえでお気軽にご相談ください。

  • 現在のタグ一覧(CSVエクスポートしたTags列で構いません)
  • 追加・削除したいタグのリスト
  • 対象商品のおおよその件数
  • 使用しているスプレッドシートの種類(Excel / Googleスプレッドシート / その他)
  • タグの命名規則があればそのルール

機密CSVやスクリーンショットの送付は不要です。タグ列だけをコピーしたものでも対応可能です。

参考にした公式情報

この記事の内容で困っている方へ

Shopify CSV / 一括編集 まわりの作業整理、小さな自動化、簡易チェックツール化について相談できます。初回相談で機密CSVやスクリーンショットを送る必要はありません。

無料相談する