
あるソフトにデータを取り込むにあたり、エクセルで作ったデータをCSVに変換しました。
変換方法は、エクセルの名前を付けて保存→ファイルの種類「CSV(カンマ区切り)」で保存して作りました。
行はそれぞれ人の名前が入っており、列にはその人の情報が入っています。
メモ帳で作成したCSVファイルを確認すると、スペースの数が違う場合があります。
具体的には、A列に名前、B列に対応する数字(例えば通し番号)が入っているとした時、
多くの人は名前と通し番号の間にスペースが10個程度入り(名前の長さで違う)、カンマで区切った後に通し番号が入ります。
しかし、一部の人にはスペースがはいらずに、名前にカンマと通し番号が続いて表示されます。
<メモ帳で作成したCSVファイルを開いた時の例>
ヤマダ○タロウ○○○○○○○○○○○○○,1,…
スズキ○ハナコ○○○○○○○○○○○○○,2,…
タカハシ○イチロウ○○○○○○○○○○○,3,…
タナカ○アイ○○○○○○○○○○○○○○,4,…
キムラ○ジロウ,5,…
サトウ○シヨウコ○○○○○○○○○○○○,6,…
※○はスペース
この例のキムラジロウの時のように、スペースの数が違って表示される理由がなぜなのかと、どのようにしたらこれを回避できるのか教えていただけませんか?
使うソフトの仕様通りにCSVを作成しているのに、ソフトにデータをうまく取り込めないので、こういったところに問題があるのかと考えています。
ご回答よろしくお願いします。
No.2ベストアンサー
- 回答日時:
>この例のキムラジロウの時のように、スペースの数が違って表示される理由がなぜなのか
CSV出力は「セルに入力されているデータが、幅調整されずに、そのまま出力」されます。
元データの末尾にスペースが付いてしまっているデータは、そのスペースがそのまま出力されます。
元データの末尾にスペースが無いデータは、スペースが無いまま、そのまま出力されます。
たぶん「エクセルのファイルを作った時に元にしたファイルが、フィールドの幅が固定されたテキストファイル」だったのでしょう。
フィールドの幅が固定されたテキストファイルを読み込んでエクセルのファイルを作ると、「文字列型」になっているセルのデータは「末尾にスペースが付いたまま」セルに取り込まれます。
一方「後から行追加して、セルに手入力したデータ」には、末尾にはスペースは付きません。
そうなると、エクセルのファイルの名前が入力された列のセルには
ヤマダ○タロウ○○○○○○○○○○○○○
スズキ○ハナコ○○○○○○○○○○○○○
タカハシ○イチロウ○○○○○○○○○○○
タナカ○アイ○○○○○○○○○○○○○○
キムラ○ジロウ
サトウ○シヨウコ○○○○○○○○○○○○
と言うように、末尾にスペースがある物と、末尾にスペースが無い物が混在する事になります。
それをそのままCSV出力すれば、質問文に書かれた状態のCSVファイルが出来上がって当然です。
元のエクセルのファイルを開いて、すべてのセルを選択状態(反転状態)にしてから、「書式」→「セル」→「フォント」タブ→「下線」から「下線」を選ぶ→「OK」ボタン、と操作してみて下さい。
添付画像は、データの末尾にスペースが付いている物と、データの末尾にスペースが無い物が混在しているエクセルの画像です。
画像左側では、末尾にスペースが付いているセルがどれなのか、見ただけでは判りません。
画像右側のように「下線付き」にすると、末尾にスペースが付いているセルが一目瞭然です。
下線を付けると「見えないスペースにも下線が付く」ので「aaaa」「bbbb」「dddd」のセルで文字の右に下線が延びてて、末尾にスペースが付いていると判ります。「ccc」は下線が伸びてないので、末尾にスペースが無いのが判ります。
この問題を解決するには、以下の2つの方法があります。
・余計なスペースを削りたい場合
TRIM関数を使って、末尾のスペースを取り除いたデータを生成し、生成したセルをコピーして「形式を指定して貼り付け→値のみ」で貼り付けて、末尾のスペースを取り除いた後、CSV出力する
・すべてスペース付きにして固定長にしたい場合
エクセルのファイルをテキストファイルに出力する際、CSV形式を選ばず、PRN形式を選んで「カンマ無しの固定長のテキストファイル」に出力する
カンマ区切りでスペース無しの不定長のテキストファイルが欲しければ前者を、カンマ無しでスペース付きの固定長のテキストファイルが欲しければ後者の方法を使って下さい。

ご回答ありがとうございます。
下線でみてみるとたしかにスペースが入ってあるのを確認できました。
原因がわかり、よかったです。
どうもありがとうございました。
No.1
- 回答日時:
>この例のキムラジロウの時のように、スペースの数が違って表示される理由がなぜなのかと、どのようにしたらこれを回避できるのか教えていただけませんか?
何故そのようになるかは各セルの文字列を点検してください。
表示状態を見ただけでは右側の空白文字が目視で確認できませんので全体の文字列長をLEN(文字列)で確認してください。
一般的には文字列データは右側の空白を付けない形で扱います。
空白を強制的に付加して同じ文字列長に調整するにはCSVファイルに出力前の処理が必要です。
A列に氏名が有るとき以下の式のようにすれば文字列長が一定になります。
=LEFT(A2&REPT(" ",20),20)

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
- フリーソフト フォルダ、ファイル名の一括変換について 3 2023/03/16 09:23
- Visual Basic(VBA) VBAで出力したCSVファイルの先頭にカンマを挿入したい 5 2022/10/14 12:20
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
このQ&Aを見た人はこんなQ&Aも見ています
-
CSV形式にすると出てくる空白を消したいです。
その他(Microsoft Office)
-
エクセルでCSVを編集するとき、空白(NULL?)はどう入れますか
Excel(エクセル)
-
【Excel】 csvの作成時、空白セルにもカンマ
Excel(エクセル)
-
-
4
EXCELでCSVファイル保存するとデータが無いところにカンマ
その他(ソフトウェア)
-
5
Excelで数値の先頭にある空白を削除したい。
Excel(エクセル)
-
6
エクセルから .txtで保存するときにセル間の空白を半角スペースにしたい
Excel(エクセル)
-
7
CSVで1列目を空白にする方法は?
PowerPoint(パワーポイント)
-
8
Excel csv保存 列数が異なる場合に、余分にカンマをつけない(ヘッダとデータの列数を変える)
Excel(エクセル)
-
9
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文章内にスペースを入力する方...
-
viで行にスペース(空白)を挿...
-
エクセル→CSVにした時、スペー...
-
数値と単位が離れないように半...
-
《初心者》HPの画像を切り替え...
-
「?」のあとにスペースはいら...
-
グローブタウンは、どうなったの?
-
正規表現で郵便番号だけを削除
-
エクセルについて質問です。 写...
-
自作のHPを死後も残す方法は?
-
word 2007 フィールドコード内...
-
この広告が出る無料HPスペー...
-
外国の無料ホームページスペース
-
設定の変更について
-
gooのHP作成での事。
-
ページ内広告の非表示
-
お勧め無料HPサーバー
-
初めてのHP作成
-
URLがわからない
-
目立たない無料のアクセス解析...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文章内にスペースを入力する方...
-
エクセル→CSVにした時、スペー...
-
viで行にスペース(空白)を挿...
-
数値と単位が離れないように半...
-
エクセルについて質問です。 写...
-
「?」のあとにスペースはいら...
-
なぜわざわざ関西弁で書き込む...
-
WordPress の投稿記事の文頭に...
-
自作のHPを死後も残す方法は?
-
word 2007 フィールドコード内...
-
ワードでどうしてもわからない...
-
省スペース デスクトップパソコ...
-
正規表現で郵便番号だけを削除
-
Twitterのスペースに入ろうとす...
-
無料サーバースペースで、広告...
-
フランス語:疑問符や感嘆符に...
-
sendmailが利用可能なプロバイダー
-
実習?での相談です。 子供たち...
-
Wordでレポートを作っています...
-
広告なしの無料ホームページス...
おすすめ情報