エクセルでCSVを保存? 変換? CSVファイルをエクセルで開くと壊れる??
仕事でCSVファイルを扱うことがあります。しかし、「CSVの意味」を本気で教えてくれる人はなかなかいません。それは、「CSV」を本質的に理解するには、その前提となる知識が必要で、仕事中にそんな面倒くさい説明をするヒマがないからです。
今回は、本当にCSVのことを知りたいのに誰も教えてくれないとお悩みの初心者の皆さんのために、CSVとは何か、を徹底的に解説します。
問題
CSVを知らない初心者に「CSVファイルをExcelで直接開いてもよい条件」を詳しく説明せよ。
解説
- 1.CSVを理解するための基本知識1(メモ帳)
- 2.CSVを理解するための基本知識2(文字の連続)
- 3.CSVを理解するための基本知識3(文字コード番号)
- 4.CSVを理解するための基本知識4(改行とタブ)
- 5.CSVを理解するための基本知識5(書式が消える)
- 6.CSVを理解するための基本知識6(テキストファイルとは何か)
- 7.CSVを理解するための基本知識7(Excelの自動変換機能)
- 8.CSVとは何か1(区切りのあるテキスト)
- 9.CSVとは何か2(CSVの読み方)
- 10.CSVとは何か3(拡張子としてのCSV)
- 11.CSVとは何か4(ファイルを開く)
- 12.CSVが壊れる?
- 13.結論:CSVファイルをExcelで開いてもよい条件
- 14.動画版はこちら(無料)
1.CSVを理解するための基本知識1(メモ帳)
パソコンのスタートメニューから「メモ帳」を起動します。
メモ帳は、スタートメニュー(すべてのプログラム)の、Windowsアクセサリまたはアクセサリーの中にあります。メモ帳は、Notepad(ノートパッド)とも言い、すべてのWindowsのパソコンに標準で入っているソフトです。
2.CSVを理解するための基本知識2(文字の連続)
メモ帳に「あ」を100個入力したとします。文字列(String)とは、このように連続した文字のことです。1つの文字列は、必ず1本につながっています。文字列は1つにつながっていますが、メモ帳の右端で折り返されることがあります。折り返されているだけで、データ自体は連続しています。
これをコピーしてExcelに貼り付けます。1行で表示されますが、折り返して全体を表示するかどうかは、セルの書式設定の問題であって、文字列のデータが変わるわけではありません。このように、Excelの場合も長い文字列が折り返されることがありますが、データ自体は連続しています。
3.CSVを理解するための基本知識3(文字コード番号)
ひらがな、カタカナ、漢字、英数字などの文字をパソコンで扱うために、すべての文字にはコード番号が割り当てられています。特に、Excelでは原則として、次のようなコード番号(Shift_JISコード10進数表記)で文字を扱います。
このコード番号のことを「文字コード」といいます。
パソコンではすべての文字を、文字コードで処理します。例えば、ひらがなの「あ」は、9250番と決められています。ここで、9250番という文字コードを繰り返しているデータがパソコンに保存されていたとします。そして、これをメモ帳で表示したとします。
メモ帳では文字コードを表示せず、「文字コード表を使って、実際の文字にして表示する」というルールになっているため、ひらがなの「あ」が連続して表示されます。
これはExcelも同じルールです。
4.CSVを理解するための基本知識4(改行とタブ)
すべての文字にはコード番号があります。ちなみに、半角スペースのコード番号は32番、全角スペースは8481番です。そして、改行にもコード番号があります。改行のコード番号は、10番 または 13番です。
改行は、正確には段落記号といい、1つの文字として保存されています。
※この図はイメージです
文字列の中に、改行の命令を表す文字(段落記号)があっても、実際には10番または13番の番号が保存されているだけで、途切れているわけではありません。
ところが、メモ帳で表示すると、「あいうえお」で途切れて、2行目に「かきくけこ」となります。これは、メモ帳の表示のルールとして、改行のコード番号(10番または13番)があったら、その続きを次の行に表示することになっているからです
Excelの場合も次の行に入力されます。
文字の中で、改行のように、メモ帳やExcelに特別な命令をする文字を、「制御文字」といいます。途中に改行がある文字列は、データとしては連続していますが、メモ帳やExcelで表示すると途切れているように見えます。(※実際には途切れていません)
タブ[Tab]も制御文字です。ちなみに、タブ[Tab]のコード番号は9番です。メモ帳でタブ[Tab]を入力すると間が空きます。
データとしては、文字列の中にタブを表す番号(9番)があるだけで、間が空いているわけではありませんが、メモ帳のルールとして、「タブの命令があれば長めのスペースをあける」ことになっています。
これをコピーしてExcelに貼り付けます。A列、B列、C列に分かれて表示されます。間にスペースのようなものはありません。Excelでは、「タブの命令があったら、右のセルに移動する」というルールになっているので、複数列に分かれて表示されます。
このように、途中に制御文字がある文字列は、データとしては1列に数字が並んでいるだけですが、画面に表示されるときには、メモ帳とExcelのそれぞれのルールに従って表示されます。
このとき、どのような表示をしたとしても、元のデータが変わることはありません。
5.CSVを理解するための基本知識5(書式が消える)
Excelに次のように入力したとします。文字を入力していますが、さらに書式が設定されています。
これをコピーして、メモ帳に貼り付けます。文字だけになって、書式はすべて消えます。
Excelで行う作業には、キーボードで行う文字入力と、マウスで行う編集作業があります。
したがって、Excelは、文字列の情報と、文字列以外の情報を持ちます。文字列以外の情報には、書式やセルの場所、列幅、図形、数式、ページ設定などがあります。
しかし、メモ帳は文字入力しかできないため、文字列の情報しか持ちません。Excelの情報をメモ帳にコピーすると、文字列以外の情報がすべて消えます。したがって、書式が消えます。
ちなみに、改行、タブ、スペースはキーボードで入力する文字であり、文字コードがあります。文字コードがあるということは文字列の情報に含まれますので、メモ帳にもコピーされます。
メモ帳に貼り付けた時点で書式が消えているので、それを、Excelに貼り付けても書式はありません。キーボードでExcelに文字入力をしているのと同じです。
6.CSVを理解するための基本知識6(テキストファイルとは何か)
メモ帳で名前を付けて保存したとします。このとき、文字情報だけが保存され、書式は保存されません。
このように、文字列の情報しかないデータを、「テキストデータ」(TEXT)またはプレーンテキスト (plain text)といい、保存したファイルのことを、「テキストファイル」(textfile)といいます。テキストファイルには文字情報しかないので、パソコンには、文字コードが並んでいるデータが保存されています。
ここで問題です。
次のテキストファイルとExcelファイルをそれぞれ保存すると、どちらのほうがファイルサイズが大きいと考えられますか?(同じ内容で書式がない)
テキストファイルは文字列の情報だけで、それ以外の情報は一切ありません。Excelファイルは文字列以外の情報も併せて保存されます。まったく書式を設定していなくても、Excelで保存すると、ページ設定やシートの数などの情報も併せて保存されます。したがって、Excelファイルのほうがサイズが大きくなります(例外はあります)。
7.CSVを理解するための基本知識7(Excelの自動変換機能)
1=01=00001=1.000=1=+1
数字の「1」は、前に0をつけたり、小数で表したり、全角文字で表したり、プラス1にしたりと、いろいろな表記がありますが、同じ数値を表すのに、表記が異なるのは、計算の妨げになるので良くないことです。
Excelでは、数値データの表記の仕方を統一するため、入力したデータを自動で変換することがあります。「1」「01」「00001」「1.000」「全角の1」「+1」をExcelで入力すると、すべて、半角で右揃えの1に統一されます。
Excelで次のように入力してみましょう。
標準のまま入力すると次のように変換されます。
数値データは半角で、右揃えとなります。パーセントがあるとパーセンテージ、コンマがあると通貨の表示形式が自動で設定されることがあります。そのほか、日付になったり、マイナスになったり、自動で変換するパターンはいろいろあります。
先頭にマイナスやプラスがあると数式とみなされ、自動でイコールが入ります。-A2は「=-A2」となり、セルA2を参照します。+Aだけだと「=+A」となってエラーになります。
また、先頭にイコールをつけると、数式とみなされて勝手に計算されます。今度は、メモ帳に入力します。間が空いているのは、タブ[Tab]です。
これをコピーして、Excelに貼り付けます。同じように、自動で変換されます。メモ帳からコピーして貼り付けるのと、キーボードで直接入力するのは同じです。
8.CSVとは何か1(区切りのあるテキスト)
次の図のように、タブ[Tab]のあるテキストファイルがあったとします。
これをコピーしてExcelに貼り付けます。タブ[Tab]は、Excelでは右の列に移動することを意味する制御文字なので、A1:C6にそれぞれ文字が入ります。
今度は次のようなカンマで区切られたファイルがあったとします。
これをコピーしてExcelに貼り付けます。カンマは単なる記号なので、B列に文字が入ることはありません。
ファイルには、文字情報だけのテキストファイルと、Excelのように、文字情報以外の情報を含むファイルがあります。そして、テキストには、区切りがなく単に文字を羅列しただけのテキストと、何らかの意味があって区切りを入れているテキストがあります。
このときに使われる区切りのための文字のことを、「区切り文字」または「デリミタ(delimiter)」といいます。例えば、電話番号や郵便番号の途中にハイフンを入れることがあります。このハイフンも区切り文字です。番号としては1つのデータですが、ハイフンで区切ることによって地域や区域を表すことができます。
東京03-3000-0000 〒100-0001
広島082-200-0000 〒600-0000
また、電子メールのアットマーク@、苗字と下の名前の間のスペースも区切り文字です。
- Tab-Separaterd Values
区切りがあるテキストのうち、タブで区切ることをTSV、タブ区切りといいます。 - Comma-Separaterd Values
半角のカンマで区切ることをCSV、カンマ区切りといいます。
もともとテキストデータは文字コードが連続しているだけなので区切るものは何もありません。したがって、テキストデータに保存できる値は長さにかかわらず1つだけです。
区切り文字を入れても文字コードが連続していることに変わりはありませんが、区切り文字で分割することによって、1つのデータの中に複数の値を保存することができます。
- CSV=Comma-Separaterd Values(カンマで分割された、複数の値)
CSVやTSVの「Values」が、複数形になっているのも、複数の値が保存できるという意味があります。
9.CSVとは何か2(CSVの読み方)
次のCSVがあったとします。
※登場する人物・団体・名称等は架空であり、実在のものとは関係ありません。
10行のデータで、10人分の情報があります。1行分のデータを「レコード」といいます。この場合は10件のレコードがあります。
それぞれのレコードは、改行で区切られています。改行は、1件分のレコードの終わりを表します。したがって、1件分のレコードは必ず1行で入力します。
CSVでは、次のように1行目に項目名を入れることがあります。
例えば、ホームラン(HR)は、左から5番目の項目です。ウォーレン・クロマティー選手(くろまて)のホームランの本数は、左から5番目の値を見て、36本であることがわかります。
次の図のように、カンマが2連続になっている場合、その間のデータがないことを表します。この場合、東尾の5番目の項目「体力」が不明であることを表しています。
10.CSVとは何か3(拡張子としてのCSV)
半角のカンマで区切られたデータをメモ帳に入力して、名前を付けて保存します。このとき、ファイルの種類が「テキスト文書(*.TXT)」になっていることを確認します。
ここで、拡張子が非表示になっている場合は、拡張子を表示します。
ファイルの拡張子はTXTです。
ファイル名は、ファイルの名前を表すベースネーム(Basename)とファイルの種類を、ドットでつなげてあらわします。
通常、名前を付けて保存するときはベースネームだけ入力すればよいですが、ファイルの種類も変えるのであれば、ファイルの種類も入力する必要があります。これを「拡張子」(Extension)といいます。
保存するときに、ファイルの種類をすべてのファイルにします。
ファイル名を入力します。拡張子を半角でCSVにします。ドットは必ず必要です。
拡張子をCSVとして保存したファイルのことを、「CSVファイル」または「CSV形式のファイル」といいます。CSVはExcelに似たアイコンになりますが、カンマがあって、カンマ区切りの形式であることを表しています。
このまま開くとExcelが起動してしまいます。保存したCSVファイルを、メモ帳の画面にドラッグすると、メモ帳で開くことができます。
11.CSVとは何か4(ファイルを開く)
CSVファイルをメモ帳で開きます。メモ帳にドラッグすればよいです。カンマ区切りで、先頭に0があります。
今度は、同じCSVファイルをそのまま開きます。Excelが起動します。Excelでは先頭の0がなくなります。先頭の0が消えるのは、CSVファイルを読み込むと、キーボード入力と同じように、前述のExcelの自動変換機能が働くからです。
また、CSVのなかに数式があれば、それをExcelで開くとその数式は計算されるため、それを悪用して、Excelを誤作動させることは可能です。(CSV自体は文字コードが並んでいるだけの単なるテキストファイルなので、ウィルスが入ることは無いですが、Excelで開いたときに誤作動させることは可能です)
CSVをExcelで直接開くときには、注意が必要です。
12.CSVが壊れる?
次のような、カンマ区切りのCSVファイルがあったとします。
CSVファイルをそのまま開きます。Excelが起動します。そして、自動変換によって先頭の0がなくなります。また、電話番号も形式が変わっています。
Excelは、CSVファイルを開くときに先頭の文字から順番に読んでいきます。そして、Excelのルールに従って画面に表示します。
このとき、Excelは、元のCSVファイルを読んでExcelに入力していくだけであって、元のファイルが勝手に書き変わることはありません。例えば、Excelではカンマが表示されませんが、これはExcelのルールとして、カンマを右へ移動するものと解釈しているだけであって、元のCSVファイルのカンマが消えることはありません。
また、Excelで先頭の0が表示されなかったとしても、それは、Excelが勝手に解釈して0を消して表示しているだけであって、元のファイルの0が勝手に消えることはありません。
このように、CSVファイルをExcelで開いたとしても、元のCSVファイルの内容が変更されることは絶対にありません。
当然、表示が崩れた状態で、上書き保存をすると、崩れた状態のまま保存されます。ファイルの中身が書き換わりますので、絶対にこのまま上書き保存をしてはいけません。しかし、表示が崩れたとしても、保存をせずに閉じれば、元のファイルのままなので問題はありません。
13.結論:CSVファイルをExcelで開いてもよい条件
まず、大原則として、CSVファイルをExcelで開くのは、開くファイルの中身が分かっている場合に限ります。中身が何か分からないものや、取扱説明(マニュアル)の無いCSVファイルを直接開いてはいけません。
- 中身が分かっている場合で、その中身を確認するためにCSVファイルを直接開くのはかまいません。Excelで多少の変更をしたとしても「保存をしなければ」問題ありません。
- 元のCSVファイルをコピーして、いわゆるバックアップを取ってから開いたり、開いた後で、名前を変えて保存するのも問題ありません。
- 次のようなCSVファイルの場合は、Excelの自動変換機能による影響がないことは明らかです。
このように、Excelの自動変換機能による影響がないことが事前にわかっている場合は、Excelで開いても構いません。この場合は上書き保存をしても構いません。
解説は以上です。
14.動画版はこちら(無料)
動画版(完全版)は、Youtubeにすべて無料で公開しております。ぜひ、ご覧ください。
ファンダメンタルExcel 10 CSVファイル(全16回)【わえなび】 - YouTube
https://www.youtube.com/playlist?list=PLRaY8kd5CoxO3pLNr9XniSBBg88rBLZ2l