私は、ネット販売の仕事をしています。ページのデータ(html)は、エクセルに貼り付けて、ファイルをCSVに変換してアップロードします。
いつものように、作業をしていました。すると、1000行ぐらいあるエクセルのデータの中に、5行だけセルの表示が#(シャープ)で埋まっているところがあります。
そのセルをクリックすると、別のところに、その内容が表示されます。ちなみに、#(シャープが)ズラズラとは、セル全部が”##############”って感じになることです。
ここで、私の状況を詳しく書きたいのですが、もし、同じような状態で、このブログを見つけた人のために、先に結果を書きます。
それは、エクセルの仕様です。だから、どうすることも出来ません。これに関しては、マイクロソフトのページ書いてあります。
こちらのページです。
[XL2002] 表示形式が文字列のとき 256 文字以上の文字を表示できない
ここからは、私の今回の状況を書きます。セルに、#(シャープ)がズラズラのところの続きです。
私は、てっきり、エクセルのバクかと思いましました。なんせ、データが1000行以上もあったので。
そこで、そのシャープがズラズラのセルのデータをコピーして、新規に開いたエクセルに貼り付けてみました。すると、ちゃんと、文字が表示されるではないですか。
今となっては、なぜ、別のページに貼り付けるとちゃんと表示されたかは謎です。なぜ謎かは、後で書きます。
ちゃんと表示されたので、やっぱり、データがたくさんあるので、それ関係のバグだと思いました。バグとは、プログラムの間違いです。
多分、セルは文字列を設定しているのに、バグが原因でエクセルの関数かと勘違いしてエラーが出ているのでしょう。なんせ、データはホームページのデータなので、<や=を多用しています。
私としては、たとえデータが多くても、ちゃんと動かないプログラム(今回の場合はエクセル)に文句をいいたい。ところで、私は趣味でプログラムを作ります。所詮素人、たいしたプログラムは作れません。そのため、プログラムは短い。
エクセルなんかになると、私のプログラムの量の、何万倍でしょう。そんな、短いプログラムでも、バグは出ます。そんな短いプログラムでも、バグは出てるのにエクセルなんかでバグが出ないはずはありません。
一説によると、バグのないプログラムは存在しないそうです。とはいえ、このまま放置することも出来ません。
これが原因で、後々トラブルなると、自分が困ります。何とかしなければなりません。
1000行ぐらいのデータのうちの、たった5行です。何か方法があるはずです。
そこで、ホームページのデータをホームページを作るソフト、ホームページビルダーに貼り付けました。そして、そのデータを整列しなおしました。
ホームページビルダーには、ごちゃごちゃになった、htmlのデータを並べ替える機能があります。そうすることによって、データにスペースを入れることが出来ます。
これで、エクセルは、関数のデータだと思わないでしょう。ちょっとプログラムのお話です。プログラムでは、”や’の文字は、意味を持ちます。
場合によっては、”や’を表示させたいことがあります。その場合はどうするかと言うと、これは表示させたいデータですよってしるしをつけます。
方法は、”や’の前に¥マークをつけます。¥”や¥’のようにします。おっと、¥も特別の意味を持っています。¥の場合は、¥¥ってします。
先ほど、ホームページビルダーに貼り付けたのは、このような効果があるのでは?と思いやってみました。¥のマークは付きませんが、改行が入るので。
改行の文字は見えませんが、もしかしたらってことでやってみました。そして、そのデータをエクセルに貼り付けました。すると、ちゃんと表示されました。
これで解決と思い、残りの4行も同じ方法を取りました。2行目もうまくいきました。でも、3行目がうまくいきません。
やっぱり、#(シャープ)がズラズラと並びます。こうなれば意地です。徹底的に原因を追究することにしました。
そこで、検索して見つけたのが、上記のリンク先です。
そこに書いてあることによると、エクセルのセルを文字列にした場合、256 文字以上 1024 文字以下の文字列を入力するとセルの表示が “#######” に変わり、文字列を表示できないそうです。
だから、私は対策として、データにスペースをいれて、データが1024文字以上になるようにしました。セルをクリックすると、データが入っているので、そのままでいいように思うかもしれません。
しかし、エクセルのデータをCSVに変換して、そのCSVファイルをエクセルに読み込んだときに、#(シャープ)がズラズラ表示されているセルが、#(シャープ)ズラズラに変わってしまいます。
これで、解決といいたいところです。しかし、まだ謎がひとつ。
256 文字以上 1024 文字以下の文字列を入力するとセルの表示が “#######” に変わり、文字列を表示できないのは仕様です。この事実は、変わりません。
でも、なぜ、新規のエクセルに貼り付けたときは、#(シャープ)ではなく、文字が表示されたのでしょうか?
もしかして、バグ?
謎は深まるばかりです。
コメント
ExcelでCSVのデータを作っていたら #(シャープ)で文字化けしてた
excel で、商品データを修正、見直しをしていた。そのなかで、あるデータが数値だったのだが、浮動小数点表示されてしまうので、さくっと全セルを「文字列」に変換してデータを作って…
うーん、↓が仕様ですから表示形式を変えれば大丈夫だとおもうんですけどね。
[XL2002] 表示形式が文字列のとき 256 文字以上の文字を表示できない
ちなみに私の環境(2003)では大丈夫でしたよ。
新しいブックに貼りつけたらうまくいった、というのは新規ブックだと表示形式-標準がデフォルトで設定されているからじゃないかと思うのですが・・・。
確認ですが、[セルの書式設定]-[表示形式]-[分類]の設定で
「文字列」から「標準」にしたのですよね?
ありがとうございます。
これを書いてから、ずいぶん日にちがたってしまいました。
だから、何の事だったかな?って感じで、よく覚えておりません。
なにぶん、3歩歩くと忘れる体質なもので。
さて、仕事がネット販売のため、パソコンのトラブルは日常的に発生します。
もちろん、エクセルに関するトラブルも発生します。
トラブルが発生したからといって、放置する訳にはいきません。
何か、対策を講じる必要が出てきます。
もちろん、今回のような場合も。
最近は、エクセルでトラブルが発生したら、データを秀丸などの他のソフトで加工して、仕上げる等の対策をしています。
そのため、何かあると、仕様って事ですぐに諦めます。
このように考えなければ、ストレスもたまりますし、仕事もたまります。
世のなかに、完璧なものはないって事で、何とかやっております。
表示形式を標準にすれば?
もちろん試してみましたが、ダメでした。
どんなにガンバっても、仕様には勝てませんでした。