CSVの謎 - 01

 

先日,ZOOMによる集計を行っていたのですが,いろいろとトラブルが発生したので,その経緯をまとめてみました.

経緯

ZOOM会議において,候補者の集計を行ってきたのですが,今回は,記述式,で行ったので,あらかじめチャットで候補者リストを提示し,そこからコピペをしていただき,ZOOMから送られたcsvファイルをエクセルで集計しました.

今回は,個人名などがありますので,情報は一般的な記号に変更しています.

また,トラブルがわかりやすいように,

ABCD, EFGH, IJKL

というデータをカンマで区切ったものを基本として,5行に並べています.

その結果,エクセルにおいては,

となりました.5行とも全く同じ表示となっています.

しかし,その後の候補者リストとのマッチングなどのチェックにおいて,エラーが発生してしまいました.

そこで,各セル(A列のみ)の文字数,A列の情報の行ごとの同一具合をエクセル関数でチェックしてみると,

となり,明らかに,3行目がおかしいことに気づきました.

ここで,
 E列 : =LEN(A1)
 F列 : =A1=A2

と計算しました(1行目のセルの関数なので,2行目以降は相対座標となります)

実は,今回作成した,csvファイルは,

------------------------------------------------------------

ABCD,EFGH,IJKL
ABCD,EFGH,IJKL
"ABCD
","EFGH
",IKJL
ABCD,EFGH,IJKL
ABCD,EFGH,IJKL

------------------------------------------------------------

というもので,上二つの行と下二つの行は同じものです.真ん中(エクセルでは3行目)のみ,改行,ダブルクォーテーションが含まれています.

改行は,自分で加えたわけではなく,トラブルが生じたcsvファイルをそのまま使いました.

 

文字の分解

そこで,A列の文字を各文字に分解してみました.

H~Lのセルでは,

=MID($A2,H$1,1)

という関数で各文字を分解しました(H2セルの関数です).このように,各行同じ値を示し,1~4文字を抽出し,5文字目は何もない状態です.

この段階では,まだ各行の違いが判りません.

 

文字コード

つぎに,各文字の文字コードを調べてみました.すると,

=CODE(I2)

何もない5文字目に,13,という数字が問題の3行目に現れました!!!何やら不吉な予感.

しかも,不思議な現象が!!!

動画にしてみましたが,かえってわかりにくくなってしまったのかもしれません...

1. 問題のセル,”A3”,を左クリック
2. 数式バーに,ABCDが表示されている.Dの右を左クリック
3. キーボードで右矢印,なんとABCDの下に行が出現!
4. エクセルの適当な場所をクリック,もしくは数式バーでエンターキー
5. なんと行の幅が広くなり,コード番号が,13→10,に変わった!

のです!!

とにかく,なんらかのコードが埋め込まれていたのです.

こちら,のサイトを参考にすると,

Char(10) : 改行コード,Linuxで一般的に使用
Char(13) : 改行コード,MacOSで一般的に使用

とのことです.詳しくはわかりませんが,改行コードであり,13はエクセル(Windows)では改行と認識されておらず,セルを操作すると,なぜか,改行コード10に自動的に変わるようです...

したがって,3行目のみ,改行コードが含まれているので,
 文字数が一つ多い
 ほかの同一と思われる文字とは異なると認識

されていたのです.

修正策としては,
 いったんテキストエディタで開いて,問題の改行部分を削除する
ですが,エクセルで作業することを試みてみました.

 

t r