アカウント名:
パスワード:
なぜCSV中の数字だけの項目を、勝手に数値として解釈するのか・・・。具体的に言うと、電話番号の頭の0が落ちたりする。
ダブルクォーテーションで括ったり、普通に考えられることは一通りやりましたよ。
[データ]→[外部データの取り込み]→[テキストファイル]から開けばカラムごとのデータ形式を指定できる。ちゃんと調べろ。
「ネットでMicrosoftをディスるやつは9割がたバカ」という私の経験則を裏付ける発言がまた増えた。裏を返すと、こういうバカでも使えるソフトウェアを開発できたたからMicrosoftは成功したんだろうな、と思う。そりゃーバカには使えないソフトなら、フールプルーフのための機能や変な仕様も必要ないし、コミュニティもわかってるやつらばかりだし、楽だろうね。
CSVってテキストファイルですよね。なぜテキストファイルを開くために、これから開くファイルがテキストファイルだということと、カラムの属性が文字列だということをユーザーが指定しないといけないのでしょうか。馬鹿でも使えるソフトとして、このくらいは実装しあっても良いと思います。
テキストファイルに属性の情報なんて入っていないからに決まっているだろう
そうじゃなくて、 CSV という時点でテキストファイルなのは確定なのだから、わざわざ Excel 上で特別な操作をせずとも、 CSV をダブルクリックで開いたときにもデータ形式の指定が出てくるべきだということじゃなかろうか。
単に数値の集計が主な業務だからだろ。このネタに食いつく人間って、正に問題視されている、「表計算をワープロ視している」人だよね。数値のハンドリングが主と思って居るなら、「数値に見える文字は数値として扱われる」って事に対して、「もっと便利に」とは思ってもそれ自体に疑問は無い筈。
>数値のハンドリングが主と思って居るなら、「数値に見える文字は数値として扱われる」って事に対して、>「もっと便利に」とは思ってもそれ自体に疑問は無い筈。
01-01,0123,999.0を1月1日 | 123 | 999と解釈するのはOKでいいですよ。
"01-01","0123","999.0"を1月1日 | 123 | 999って勝手に変換すんのやめてくれって思います。いやデフォルトで変換機能があるのは一歩譲るにしても、「ファイルを開く」の[開く]のトコでせっかく選択肢が出せるんだからそこで選ばせろと。
何度も提案されてる「外部データの取り込み」はあくまで既存のファイルに外部データを挿入する方法であって、「csvファイルを開く方法」じゃないじゃないですか。
ちなみにExcelのCSV読み込みは、たとえ全角文字でも数値に見えるものなら勝手に変換するので"12345",12345でも12345 | 12345に勝手に変換してくれますね。
ご指摘のように日付に見えるものはこれまた勝手に日付にするし、あと括弧つきの数字はマイナスに変換します。"(10.0)",20.0,(30.0)なんてのは、-10 | 20 | -30になる。データ交換用プログラムなんかで「CSV出力機能」を付けるときなんかには要注意です。
で、これを回避するにはいっそのことCSV出力なんていうのをやめるか、もしくは、別のコメントでも書いた 「=」を使う方法しかないですね。いまのExcelだと。数
他のコメントに書いたんですが、 = を使う他に拡張子をcsv以外にするという手があります。というより、 ' や =" "を使うよりそっちのが楽です。
sample.csv というファイルなら sample.txt にリネームして(sample.logでもsample.xxxでも何でもとにかく自動変換されなきゃ何でもいいんですが)Excelから「ファイルを開く」で選択すればテキストウィザードが開きます。そこで文字列にしたい列だけ「文字列」に指定すればOK。他のソフトから「csv形式で出力」したものをそのまま使えます。
「CSVファイルの拡張子を.TXTにする」方法なら、ファイルを開くで、テキストファイルウィザードを通して開くことができますよ。
その場合は、上書き保存すればもれなく不幸になれます。#今ちょっと試したら、拡張子.txtなCSVファイルをテキストファイルウィザードでコンマ区切りとして読み込んだあと、それを上書き保存したらタブ区切りテストにしやがった…
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
吾輩はリファレンスである。名前はまだ無い -- perlの中の人
Excel自体がクソ (スコア:1)
なぜCSV中の数字だけの項目を、勝手に数値として解釈するのか・・・。
具体的に言うと、電話番号の頭の0が落ちたりする。
ダブルクォーテーションで括ったり、普通に考えられることは一通りやりましたよ。
クソはお前だ (スコア:0)
[データ]→[外部データの取り込み]→[テキストファイル]から開けばカラムごとのデータ形式を指定できる。
ちゃんと調べろ。
「ネットでMicrosoftをディスるやつは9割がたバカ」という私の経験則を裏付ける発言がまた増えた。
裏を返すと、こういうバカでも使えるソフトウェアを開発できたたからMicrosoftは成功したんだろうな、と思う。
そりゃーバカには使えないソフトなら、フールプルーフのための機能や変な仕様も必要ないし、コミュニティもわかってるやつらばかりだし、楽だろうね。
Re: (スコア:0)
CSVってテキストファイルですよね。
なぜテキストファイルを開くために、これから開くファイルがテキストファイルだということと、カラムの属性が文字列だということをユーザーが指定しないといけないのでしょうか。
馬鹿でも使えるソフトとして、このくらいは実装しあっても良いと思います。
Re: (スコア:0)
テキストファイルに属性の情報なんて入っていないからに決まっているだろう
Re: (スコア:0)
そうじゃなくて、 CSV という時点でテキストファイルなのは確定なのだから、わざわざ Excel 上で特別な操作をせずとも、 CSV をダブルクリックで開いたときにもデータ形式の指定が出てくるべきだということじゃなかろうか。
Re:クソはお前だ (スコア:1)
単に数値の集計が主な業務だからだろ。
このネタに食いつく人間って、正に問題視されている、「表計算をワープロ視している」人だよね。
数値のハンドリングが主と思って居るなら、「数値に見える文字は数値として扱われる」って事に対して、
「もっと便利に」とは思ってもそれ自体に疑問は無い筈。
Re:クソはお前だ (スコア:1)
>数値のハンドリングが主と思って居るなら、「数値に見える文字は数値として扱われる」って事に対して、
>「もっと便利に」とは思ってもそれ自体に疑問は無い筈。
01-01,0123,999.0
を
1月1日 | 123 | 999
と解釈するのはOKでいいですよ。
"01-01","0123","999.0"
を
1月1日 | 123 | 999
って勝手に変換すんのやめてくれって思います。
いやデフォルトで変換機能があるのは一歩譲るにしても、「ファイルを開く」の[開く]のトコでせっかく選択肢が出せるんだからそこで選ばせろと。
何度も提案されてる「外部データの取り込み」はあくまで既存のファイルに外部データを挿入する方法であって、
「csvファイルを開く方法」じゃないじゃないですか。
Re: (スコア:0)
ちなみにExcelのCSV読み込みは、たとえ全角文字でも数値に見えるものなら勝手に変換するので
"12345",12345
でも
12345 | 12345
に勝手に変換してくれますね。
ご指摘のように日付に見えるものはこれまた勝手に日付にするし、あと括弧つきの数字はマイナスに変換します。
"(10.0)",20.0,(30.0)
なんてのは、-10 | 20 | -30になる。データ交換用プログラムなんかで「CSV出力機能」を付けるときなんかには要注意です。
で、これを回避するにはいっそのことCSV出力なんていうのをやめるか、もしくは、別のコメントでも書いた 「=」を使う方法しかないですね。
いまのExcelだと。数
Re:クソはお前だ (スコア:1)
他のコメントに書いたんですが、 = を使う他に
拡張子をcsv以外にするという手があります。
というより、 ' や =" "を使うよりそっちのが楽です。
sample.csv というファイルなら sample.txt にリネームして
(sample.logでもsample.xxxでも何でもとにかく自動変換されなきゃ何でもいいんですが)
Excelから「ファイルを開く」で選択すればテキストウィザードが開きます。
そこで文字列にしたい列だけ「文字列」に指定すればOK。
他のソフトから「csv形式で出力」したものをそのまま使えます。
Re:クソはお前だ (スコア:1)
「CSVファイルの拡張子を.TXTにする」方法なら、ファイルを開くで、テキストファイルウィザードを通して開くことができますよ。
その場合は、上書き保存すればもれなく不幸になれます。
#今ちょっと試したら、拡張子.txtなCSVファイルをテキストファイルウィザードでコンマ区切りとして読み込んだあと、それを上書き保存したらタブ区切りテストにしやがった…