新型コロナウイルス感染症の影響

日本郵便(郵便局)からの「国際郵便」は、現在大幅な遅延が発生しているのに加え、多くの国・地域で引受け停止措置が講じられています。

Due to the COVID-19 coronavirus
The international mail has been terrible delayed or stopped due to the reduction in airline flights.

https://www.post.japanpost.jp/int/information/index.html

File exchangeでテンプレートを使う方法(関数例付き)

2016年1月14日

タイトル

ファイルエクスチェンジでテンプレート(HTML)をアップロードする方法です。

ebay出品で商品説明にHTMLを使ってる方は、まったく同じテンプレートをFile exchangeからでもアップロードすることができます。

さらにエクセルの関数を使うことで、商品ごとの詳細をHTMLに組み込んだ状態で、CSVファイル化することが可能です。ある程度HTMLの知識がある方が対象です。

実際に僕が使ってる方法を紹介します。

今回やってみること

  • HTMLにキーワードを埋め込む
  • エクセルで関数を入力する

HTMLをFile exchangeで使うだけなら簡単

単純にHTMLを使うだけなら簡単です。

「*Description」セルに使用中のHTMLをコピーするだけでOK。ただし改行は削除する必要があるので、エクセルの置換機能を使って改行コードを消したらいいと思います。

改行削除の方法:
エクセル上で Ctrl + F した後に、Ctrl + J と"すべて置換"を押す

改行を削除するサイトもあります。

>>改行コード削除


 

でもまあ、ただHTMLを使うだけだと商品ごとに違う情報を入れるのが面倒です。

HTML内の商品情報などは異なる内容を表示したいので、関数を使います。

使う関数

SUBSTITUTE

SUBSTITUTE関数は、対象セル内の任意の文字列を検索し、その検索した結果を希望する値に置き換えることができます。

つまり、今回はHTMLの中から○○という文字を探し出して、その○○を商品ごとの文字や数字に書き換えるために使います。

SUBSTITUTE関数の書き方

=SUBSTITUTE(文字列,検索文字,置換文字)

文字だけで説明するのは難しいので実際にHTMLを使ってSUBSTITUTEしていきます。

File exchangeでSUBSTITUTE関数を使った実例

SUBSTITUTE参考のHTMLとしてテーブルで作った送料表を使って説明します。

こんな感じでebayの説明ページに表示されるようにしたい場合

SALEMS
USA, Australia, Canada$5$15
Europe, Russia$5$17

HTMLは以下のように書きます

<table>
<tbody>
<tr>
<th></th>
<th>SAL</th>
<th>EMS</th>
</tr>
<tr>
<td>USA, AU, CA</td>
<td>$5</td>
<td>$15</td>
</tr>
<tr>
<td>Europe, Russia</td>
<td>$5</td>
<td>$17</td>
</tr>
</tbody>
</table>

File exchangeは改行を使えないので、実際にDescriptionセルに入力する場合はこのように一行の改行なしで記載します。

<table><tbody><tr><th></th><th>SAL</th><th>EMS</th></tr><tr><td>USA, AU, CA</td><td>$5</td><td>$15</td></tr><tr><td>Europe, Russia</td><td>$5</td><td>$17</td></tr></tbody></table>

商品ごとで送料が変わる設定の場合

SALEMS
USA, Australia, Canada$5$15
Europe, Russia$5$17

今回の目的は、上の表で色がついてる5ドル15ドルといった値段の部分を商品によって変更されるようにします。次の手順でソース変更とエクセル上の関数入力が必要です。

  1. HTMLの金額部分を任意の値に置き換える
  2. SUBSTITUTE関数をエクセルのフォーマットに沿って入力する

それぞれの詳細は以下のような感じです。

1.HTMLの金額部分にUS_SAL や US_EMS と任意の値を設定

エクセル上で実際に入力された送料と置き換えるために、HTML内の金額部分を検索用の文字列へ書き換えます。

今回の例ではUS_SALやUS_EMSなどの値にしました。ご自身で決めた値でかまいませんが、他のHTMLタグと被らない唯一の文字にします。(日本語でもOK)

書き換えるとこんな感じになります。

SALEMS
USA, Australia, CanadaUS_SALUS_EMS
Europe, RussiaEU_SALEU_EMS

実際にエクセルに入力したらこんな感じ。

list-excel

次にSUBSTITUTE関数をエクセルに入力します。

2.SUBSTITUTE関数をエクセルフォーマットに沿って入力する。

File exchangeテンプレートのDescriptionセル部分に入力します。SUBSTITUTE関数の書き方はこんな感じです。

=SUBSTITUTE(HTMLが入っているセル,"US_SAL",実際の送料が入っているセル)

HTMLが入っているセル実際の送料が入っているセルという部分を、それぞれの値と紐付してください。

これで、HTMLが入っているセル内から"US_SAL"という文字を検索して一致した場合に、"実際の送料が入っているセル"の値とUS_SALを置き換えるようになります。

US_SAL ⇔ 実際の送料が入ってるセル

具体的に言うと、File exchange内の送料欄で、アメリカ向けエコノミー送料セルに"5"と入っていた場合、HTMLから"US_SAL"という文字を検索して、"US_SAL"を"5"に自動で入れ替えるという動きです。

エクセルで入力した場合以下のようになります。
US_SALとUS_EMSを置き換えています。SUBSTITUTEの関数をE2に入力、HTMLは入力専用シート

置き換え

そして更に、SUBSTITUTE関数は複合して書くことができるので上の4つの文字を置換する場合はこのように書きます。

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(HTMLが入っているセル,"US_SAL",実際のSAL送料が入っているセル),"US_EMS",実際のEMS送料が入っているセル),"EU_SAL",実際のEU-SAL送料が入ってるセル),"EU_EMS",実際のEU-EMS送料が入ってるセル)

基本はこんな感じです。実際にやってみた方が分かりやすいです。

これを応用すれば、例えば商品の型番を代入したりタイトルをebayのタイトルと一致させたり、画像を挿入したりできるわけです。

list-excel3イメージですが、こんなのも作れます
(画像が拡大したり入れ替わったりする所はjavascriptが必要です)

JavascriptやJQueryはそのまま入力するだけでは使えません。かなりゴニョらないとアップロードで弾かれます。

CSSは普通に使えるので、メディアクエリでスマフォ用HTMLとPC用を分けたりできます。

エクセルのポイント

ポイントは、file exchangeのシートだけで完結させようとしないところです。

入力する専用のシートと、File exchangeのcsv用シートは分けた方がいいです。さらに言うなら、HTMLを細かく分解してCONCATENATE関数などでくっつけたら自由自在です。

誤って関数を消したりしなくていいですし、細かい修正も楽になりますしね。

関数の本が一冊あるとはかどります。

商品説明にHTMLを使う方法のまとめ

  • ebay出品で商品説明に使ってるHTMLテンプレートをそのままFile exchangeでも使える
  • HTMLは改行を入れずに一行で書く
  • 商品ごとで異なるデータは、エクセルの関数SUBSTITUTEを使うことで、任意の値に置換・変更できる
  • HTMLはメインシート以外のシートに入力して、紐付けした値をFile exchangeのメインシートに入れるようにする

僕のFile exchangeテンプレートでは、商品の価格と重さを入力したら、販売価格や送料は自動で各国振り分けされます。そしてHTMLにも連動して入ります。

FREE Shippingも条件によって自動で入るので、送料表にもそれぞれが連動して記載されるようになってます。

File exchangeを使えば無料で実現できる内容です。

エクセルが使える人はもうやりたい放題できますね。

  • データベースでのID管理
  • スプレッドシートとの連動(自動翻訳、画像取得)

毎月出品ツールにお金払うのは嫌って方は、外注さんにこれらを作ってもらうことがおススメです。

-File Exchange

関連記事とスポンサーリンク

© 2023 前略、ヨッタさんへ