- ベストアンサー
Excelで日付を文字列として保存する方法は?
- 最近のExcelはバージョンすらわからない状態で使用しているが、日付を特定の書式でテキストファイルとして保存する必要がある。
- セルの書式を文字列に設定しても、保存されたファイルでは日付が異なる形式で表示されてしまう。
- 「2015-01」という形式の日付を正確に文字列として.csvファイルに保存する方法を教えてほしい。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
「csv」ファイルは、単なるテキストファイルです(メモ帳で開きます)。 ですから、まず、メモ帳(またはお持ちのテキストエディタ)で開いてみてください。 それで問題なければ、「csv」ファイルには問題ありません。 問題はエクセルに読み込むときです。 そのまま、ダブルクリックなどして開いた場合は、エクセルは勝手な事をしてしまうので、ダメなのです。 メニューの「データ」→「外部データの取り込み」→「テキストファイル」で、ファイルを選択し、「インポート」ボタンを押します。 「次へ」→「カンマ」にチェックを入れて、「次へ」 すべて「G/標準」となっているとおもいますので、すべての列で良ければ、「Shift」を押しながら、最終列をクリックすると、すべての列が選択されますので、「文字列」にチェックを入れて、「完了」すれば、すべての列が文字列として読み込まれますので、そのような勝手な変換は行われません。 もちろん、「2015-01」の列だけ、「文字列」にしたければ、その列だけが選択されている状態で、上記の操作を行ってください。
その他の回答 (6)
- chayamati
- ベストアンサー率41% (260/624)
こんにちは >2015-09 と入力すると 2015/9/1 上記のように入力するとエクセルは無条件で日付(シリアル値)と 解釈して受けます。 テキスト宣言するにはシングルコーテーション(Shift+7)から始めます ’2015-09
お礼
やはりそうでしたか。シングルクオーテーションがはいったファイルをアップロードすると、受け付けられないのでこまりますね。。。
- msMike
- ベストアンサー率20% (364/1804)
》 このファイルを開けると、それらがすべて 》 2015/09とか2016/12として保存されています! それは貴方の勝手な誤解です。 メモ帳等のテキストエディタで開いてみてください。 チャンと 2015-09とか2016-12として保存されています。このことを知らない回答者もおられるようですね。 つまり、当該CSVを作成した Excel自身で開くと化けてしまうというお粗末なことになっているのです。 これはMSお得意の“小さな親切、余計なお世話”の仕業なのです。 私なら、「MSのヤツ~」の呪いながら、CSVファイルを読み込んだ後で、セルの書式を yyyy-mm に変更します。 あるいは、別セルに式 =TEXT(A1,"yyyy-mm") で変換します。
お礼
なんかむずかしい原因があるのですね。 マイクロソフトの社会貢献は10年ほど前に終わって、あとは害毒しか流してないものと信じています。
- bunjii
- ベストアンサー率43% (3589/8249)
>セルの書式を 文字列にし、2015-09 や 2016-12などとうちこんでから.csvで保存しました。 csv形式でなくtxt形式で保存すれば良いのではないでしょうか? >このファイルを開けると、それらがすべて2015/09とか2016/12として保存されています! csv形式のファイルはExcelで開くと自動的にデータ形式を変換しますのでメモ帳やワードパットのような文書編集ソフトで開けば良いでしょう。(csv形式のファイルもメモ帳で編集できます) >それはさておき、2015-01をあるがままの文字列として.csvに保存するにはどうすればよいのでしょうか。 csvファイルをExcelで直接開かずに新規ブックを開いてcsvファイルから外部データの取込みでcsvファイルからインポートするときに日付の列をテキストに指定すれば良いと思います。
お礼
列がある程度多いと、テキストエディターで開いても、わけわかんないので、そのためにエクセルがあると思うのですが、そのエクセルが勝手なことをするので、困っています。 別の方も書かれていますが、ダブルクリックせずに、インポートするわけですね。
- imogasi
- ベストアンサー率27% (4737/17069)
質問者は、エクセルの初心者で、勉強不足で、見当違いの意見を述べているような気がする。 エクセルで、日付を入力すると、例えば、本日は、半角で2018/6/11のように入力するのが標準方法で、セルの値は43262という数字(に直して)で持っています(実は、時刻部分もあるので、小数点以下付の数)日付シリアル数といって1900年1月1日を第1番目とする、今日の日付の実カレンダーでの順序数(何日目に当たるか)です。 エクセルで、日付の演算や関数での加工や、セルの表示形式は、すべて日付シリアル値でセルにデータが入っていることが前提です。見た目は同じでも、文字列での入力はだめで、関数で文字列を日付シリアル値に変換しないといけない。 従って日付を省いた日付(年月のみ)は、処理がむつかしい。すべて1日にわざと入力して、表示形式で年月だけに見せたりする。 それをユーザーは、日付けの書式を指定する操作を行い、好みの表現にして見せて・見ているのです。 その際、日付をフル日付で見せないで、ユーザー定義で、「yyyy-mm」を適用すれば、見かけ上2018-06に見えます。 これを文字列の「2018-06」としたいなら、別列のセルで関数を使って =TEXT(A1,"yyyy-mm")とします.別列が使わないなら、VBAというプログラムをつくることが必要です。 以上が基礎論です。 これらの点は、誰かエクセルのわかった人に聞くか、講習を受けるか、辛抱強く自習しないと、自ずとわかるというわけではないでしょう。 ーー 質問者の言うような日付文字の、CSVファイルを作るのは、また別テーマの問題です。エクセルは、できるだけ数字化してセルに数値データとしようとする工夫がされているので、なかなか梃子釣ります。 一番手軽のは「 '2018-06 」と一番先頭に、アポストロフィをつけて入力することじゃないかな。文字列の扱いになります。入力し直すとか。 これでうまく行くか、やってみてください。 アポストロフィをつけて入力して、 エクセルで保存し(拡張子csv)、メモ帳で開くと 2017-12 2018-05 2018-06 のようになりましたが。 私なら、上記の件がうるさいので、エクセルに頼らず、VBAでCSVファイルを作りますが。
お礼
エクセルに打ち込まれている方ですね。ありがとうございました。
- f272
- ベストアンサー率46% (8467/18126)
> セルの書式を 文字列にし、2015-09 や 2016-12などとうちこんでから.csvで保存しました これで大丈夫ですよ。「このファイルを開けると、それらがすべて2015/09とか2016/12として保存されています」というのは、そのファイルをエクセルで開けるからです。エクセルで開けるときに2015-09という文字列を自動的に2015年09月1日と解釈して適当な書式で表示するのです。csvファイルを開くときにエクセルを使わなければ、ちゃんと2015-09という文字列で保存できていることが確認できるでしょう。
お礼
ありがとうございます。列の数がかなりあって、エクセルで開けないと仕事になりません。でも2016-12として保存されているなら、そう表示してくれると助かるのですが。。。
- aokii
- ベストアンサー率23% (5210/22062)
2015-01をあるがままの文字列として.csvに保存するには、おそらく、' を頭につける以外に方法はありませんので、エクセルで全セルの書式を文字列にしてから2015-09 と入し、.txtのファイル形式で保存されてはいかがでしょうか。
お礼
なるほど.txt形式というのもひとつの手ですね。
お礼
なるほど、安易にダブルクリックで開いてはいけないということですね。列を選択して「文字列」として指定するわけですね。ありがとうございました。