LoginSignup
0
2

More than 3 years have passed since last update.

非エンジニアのためのcsv編集

Last updated at Posted at 2020-06-06

楽天、yahooなどの販売ページ用のcsvを編集する事が多いです。
今回はフリーソフトのsmooth csvでの僕の使い方をまとめました。
(sql処理を書きたくて記事にしました。そこまでの説明はざっくりです。)

そもそもcsvとは

カンマで区切った値(Comma Separated Value)のことです。
excelでも編集できますが、値が変更される癖があるので専用のcsvソフトで編集したほうが良いです。

ダウンロード

smooth csvをダウンロード。
javaが必要なため、それもダウンロード。

smooth csvの良いところ

  • excelのような見た目で使えます。
  • データ量が多くても軽いです。
  • 検索したときに、マーカーがつくのでわかりやすい。
  • grepが使える(あまり使ってないけど)
  • sqlが使える(selectのみ これが書きたくて記事を書きました。)

よく使うショートカット

  • 選択範囲を埋める ctrl + ALT + D
  • 後ろの行を増やす ctrl+;
  • 後ろの列を増やす ctrl+shift+;
  • 行を削除 shift+D
  • 列を削除 shift+ctrl+D

csv.gif

僕のPCは、ショートカットを別の動作に割り当ててる関係で
埋める処理だけ、編集→選択範囲を埋めるの流れになっています。

あとは、思った見た目でファイルが開いていない時は
ctrl+F5で開き方を指定できます。

SQL処理

書きたかった事です。
select処理のみですが、よく使います。
僕の場合は、セール対象となったデータだけをかき集めたいときによく利用してます。

基本的な文
select * from csvtable('item.csv') where "2" = 'aaaa'

item.csvの2列目の値が、aaaaを集めろ。 出力列項目は全部にて。(*)

csv2.gif

"2" = 'aaaa'の所は他にもこのような書き方もできます。

nullじゃないもの
"2" not null

頭に「なんとか」があって、aaがつくもの
"2" like '%aa'

%はワイルドカードです。

かっこで括った値で
"2" in ('aaaa','bbbb')

最後のかっこで括った処理は遅めで
出力結果が重複したり、バラバラになることがあったのでお勧めはしないです。

僕がここで使うのはunion allです。
selectを結合させて、結果を重ねる処理です。

select * from csvtable('item.csv') where "2" = 'aaaa'
union all
select * from csvtable('item.csv') where "2" ='bbbb'

こんな感じです。
2つのselect文をunion allで結合します。
出力結果は、持ってきたリストと同じ並びで出力してくれます。

もちろん手入力では大変なのでエクセルを使ってみましょう。

csv3.gif

最初のunion all はいらないので消してください。

union all select~ aaaa
union all select~ bbbb
これを。

select~ aaaa
union all select~ bbbb
こう。

できた!と思ってもsqlに貼り付けると、不要な所にダブルクォーテーションがついてきます。
テキストエディタで置換をしてください。

EXCELアドイン

置換が面倒なので、excelアドインを作ってみました。
動作保証はしかねます。
csv4.gif

https://github.com/tensai-man/excel-sql
(初めてのgithub公開)

補足

andも使えます。


select * from csvtable('item.csv')
where "4" like '%防水%' and "2" not like '%防水%'

4列目の商品説明文には「防水」と書いてて、
2列目の商品名に「防水」と書いていないもの 修正しなきゃ!

smooth csvは、selectだけなので確認用に。
更新updateも使いたくなったら、accessなど別のやり方で

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2