Excelでいろいろな形式のファイルを扱うことがありますが、CSVのことが正しく理解できていればたいていのファイルは扱うことができるはずです。「タブ区切りでTXT形式」と言われて、全く意味が分からない???という状態であれば復習が必要です。
ところで、CSVの区切り文字がカンマであることすら知らない人が、CSVファイルを扱うことが増えています。本当に困ったことです。CSVファイルのカンマが区切りなのかデータの一部なのかをシステム側でいちいち判定しなければならないのは面倒で・・・と言ってもなかなか理解してもらえないので、CSVをやめてタブ区切りのファイルを使うシステムが増えてきました。
そこで、今回はタブ区切りのテキストファイルの入出力を中心に出題します。
目次
- 1.サンプルのファイルはこちら
- 2.タブ区切りのファイル
- 3.タブ区切りなのに拡張子TXT
- 4.TSVを取り込んでCSVで保存
- 5.スペース区切り
- 6.スペース区切りをタブ区切りにする
- 7.TSVのなかのSSV
- 8.TSVをダブルクォート付きのCSVにする
- 9.動画版はこちら(無料)
1.サンプルのファイルはこちら
わえなび公式サイト(waenavi.jp)では、この記事で使用しているExcelのデータを無料で配布しています。ご自由にお使いください。10-16, 10-16-2のサンプルファイル(ZIP)です。
2.タブ区切りのファイル
問題
次のデータをタブ区切りのファイルとして保存しなさい。ただし、拡張子はTXTとする。
※なお、このデータはフィクションです。登場する名称はランダムに生成された架空のものであり、実在する人物、団体等とは一切関係ありません(以下、同じ)。
解説
テキストデータの中でタブで区切られたデータを「タブ区切り」または「TSV」といいます(参考:【ExcelとCSV】本気で理解したい初心者のためのCSV勉強会資料)。TSVはTab-Separated Valuesの略です。
Excelで保存するときに、ファイルの種類で、タブ区切り(txt)を選びます。
保存したファイルをメモ帳で開きます。
それぞれの項目がタブで連結されて、タブ区切りのデータになっています。
別解
メモ帳を起動します。Excelのデータをコピーして、メモ帳に貼り付けます。
タブ区切りになります。名前を付けて保存します。
3.タブ区切りなのに拡張子TXT
さきほど、タブ区切りのデータを作ってTXTで保存しました。データはタブ区切り(TSV)ですが、ファイルの拡張子はTXT(テキストファイル)です。タブ区切りのファイルはテキストファイルの一種なので間違いではありません。
拡張子TSVで保存することもできますが、多くのパソコンで直接開くことができないので、原則として、タブ区切りのデータは、拡張子TXTで保存します。TXTにすると直接ファイルを開いたときにメモ帳が起動するので、中身をすぐに確認することができます。
たまに、TSVのことをCSVということがありますが、このときの「C」はComma(カンマ)ではなく、Character-separated(文字で区切られた)という意味です。
4.TSVを取り込んでCSVで保存
問題
さきほどの問題で保存したファイルをExcelに取り込みなさい。また、CSVとして保存をしなさい。
解説
拡張子がTXTやTSVのファイルは、CSVと同じように、テキストファイルウィザードで取り込みます(参考:【ExcelとCSV】初心者のためのCSV取り込み事例演習教材(勉強会資料))。
次へ進みます。タブにチェックを入れます。
次へ進みます。すべての列を選択して、文字列にします。
これで完成です。
ここで何らかの編集をしたと仮定します。編集後のファイルに名前を付けて保存をすれば、CSVとして保存をすることができます(参考:初心者が「CSVで保存してアップ」を理解するのは意外と難しい(勉強会資料))。
TSVをカンマ区切りのCSVにするには、いったんテキストファイルウィザードで取り込んでから、CSVで保存します。
5.スペース区切り
問題
苗字と名前が入力されているテキストファイルがある。区切りをすべて、1個の半角スペースにしなさい。
解説
メモ帳で置換をします。
全角スペースを半角スペースにします。すべて置換します。
次に、半角スペースが2個以上ある場合に、それを1個にします。すべて置換します。すべて置換を繰り返してスペースが2個以上連続しないようにします。
これで完成です。
6.スペース区切りをタブ区切りにする
問題
さきほどの問題のデータを、A列とB列に分けて取り込む方法をできるだけ多く考えなさい。
解説
テキストデータの中でスペースで区切っているものを、スペース区切り(SSV=Space Separated Values)といいます。カンマ区切り、タブ区切りと考え方は同じです。
テキストファイルウィザードで取り込みます。
次へ進みます。スペースにチェックを入れます。
次へ進みます。
これで完成です。
別解1
テキストファイルの全部をエクセルに貼り付けます。全ての文字列がA列に入ります。
区切り位置(区切り位置指定ウィザード)で、スペースで分割する方法もあります。
これで完成です。
別解2
テキストファイル(メモ帳)でスペースのところをタブにします。
タブ文字を選択してコピーします。
置換で、半角スペースをタブに置換します。置換の際、タブ文字を直接入力することができないので、タブ文字はコピー・貼り付けを使います。
これでタブ区切りになります。このように区切り文字は置換によって変えることも可能です。これをすべてコピーします。
エクセルに貼り付けると2列に分かれます。
7.TSVのなかのSSV
問題
次のようなTSVがある。苗字と名前を区切ってExcelに取り込みなさい。
解説
テキストファイルウィザードで取り込みます。
次へ進みます。タブにチェックを入れます。このとき苗字と名前が分かれていません。
スペースにチェックを入れます。これで2列に分かれます。
次へ進みます。全ての列を選択して文字列にします。
これで完成です。
8.TSVをダブルクォート付きのCSVにする
問題
これはさきほどの問題で作成したExcelファイルである。
ダブルクォーテーション付きカンマ区切りのCSVを作成しなさい。
解説
まずは検索の画面を表示します(参考:【Excel】特定の文字列を含むセルを全部選択するには[すべて検索]をして[すべて選択]をすればよい)。
半角のダブルクォーテーションを検索して、表の中に半角のダブルクォーテーションがないことを確認します。
A列の左に1列挿入します。何か前後に文字列を入れます。(表の中で絶対に使われていないダミーの文字列を前後に入れることで、行の先端と終端に目印を付けています)
名前を付けてタブ区切り(TXT)で保存をします。
保存したファイルをメモ帳で開きます。
メモ帳の先頭の「ダミーの文字列+タブ」をコピーしておきます。置換をします。「行の先頭にあるダミーの文字列+タブ」を「ダブルクォーテーション」に置換します。
「タブ+行の終端を表すダミーの文字列」を「ダブルクォーテーション」に置換します。
最後に、タブを「ダブルクォーテーション、カンマ、ダブルクォーテーション」に置換します。
これでCSVのすべてのフィールドにダブルクォートが付きます。
これを拡張子を変えてCSVとして保存すれば完成です。
別解
行の前後に入れるダミーの文字列を「=char(9)」とする方法もあります。これは、文字コード番号9番の「タブ」を入力する数式です。
行の先頭と終端にタブ文字=CHAR(9)を入れます。
タブ区切りで保存をすると、行の最初と最後がタブになり、さらに、ダブルクォーテーションが付きます。
「タブ、ダブルクォーテーション、タブ」を「空白(何も入力しない)」に置換して、一括削除します。
タブを「ダブルクォーテーション、カンマ、ダブルクォーテーション」に置換します。
これで完成です。
解説は以上です。
9.動画版はこちら(無料)
この記事は、わえなびファンダメンタルExcel Program10-16, 10-16-2 の動画の内容を書き起こし、加筆修正したものです。