アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルのデータ(住所などが記載されたデータ)をもらって加工しないといけないのですが、3-2などのハイフンが入ったものが日付表示になっていました。
日付表示からもとのハイフンでの表示に変えたいのですが、方法はありますでしょうか?
日付表示になってしまっているデータは相手からもらったものです。
こちらで正しく表示することはできますか?
相手に正しい書式で入力してもらわないとだめでしょうか?
エクセルは2003です。

A 回答 (9件)

結論から申しますと、日付型から元データに戻すことはできません。


できることは、日付型から元データを予想して変換することです。

皆さんの変換方法だと
「9-1-1」 と 「1-1」 が同じ結果になります。

元データがわからない以上、どのような変換をしたところで正解がわかりません。
No1の回答でも述べましたが、送り主に書式を確認していただいた上で、再送してもらいましょう。
    • good
    • 0

#5です。


元のデータが、質問者側に今もある場合は、元のデータはテキストデータでは無いのかな。エクセルのデータとすると、くれた先の人が
(エクセルのことに詳しくなく)無造作にエクセルで読み込ませて渡してきた可能性が在る。
質問の問題は再々ここの質問に出ているものです。
本当は、くれた人側で、データー外部データの取り込みーデータの取り込みー各列で書式設定をするべきだった、とは思う。
そして其れで読み込んだエクセルで渡してくれれば、こんな質問をしなくて済んだ。
#5の回答などは、元データが手元に無く、今ある読み込み済みのデータを復元訂正する方法です。
だから十分で無いかもしれない。
しかし、元のテキストデータが質問者の手元にあるなら、適当なやり方でエクセルに正しく読み込ませる方法もあるしそれが正しい解決法です。
またメモ帳でよみ込めば本題の箇所の原データがどんなものかわかるでしょう。
>日付になってしまったものはすべて住所の地番です
エクセルでは、-を挟んだ数字データを入力すると
X-Y,X-Y-ZでX,Yが月や日にありえるものだと日付になる。
>「1-01」のようなデータが「1-1」になってしまいます
という忠告もあるが、内容が住所番地と聞くとあまりありえない。
1-1を1-01にするのは簡単ですが、その必要はなさそう。
ーーー
当初質問には問題箇所が、住所の丁目、番地部分であるということが書いてなくて、回答が、やや日付にとらわれすぎた。
>日付表示になっていました
も質問で、具体的に少数でも、見た目どうなっているのか例示してほしかった。
Mar-00(3700/3/1) は 3-1
Jan-51(3851/1/1) は 1-1
Feb-82(3882/2/1) は 2-1
では何がどうなったのか判らない。Mar-00(3700/3/1)の意味がわからない。
2000/3/1  の日付に対して、mmm-yyというような特殊な設定をしないとMar-00にならないから。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

すみません。質問の仕方が悪かったですね。どう伝えたらいいものかととても悩みましたが、説明不十分でした。申し訳ありません。
元データはありません。

表示は
11月2日
3月13日
1月15日
3月15日
となっており、セルをダブルクリックすると、それぞれ
2009/11/2
2009/3/13
2009/1/15
2009/3/15
という中身?になります。
これらの書式をみると、表示形式はユーザー定義のm月d日となっています。

教えていただいた方法で変換すると、それぞれ
11-2
3-13
1-15
3-15
となります。

上記の分は問題ないのですが、

もらったデータの中には
Feb-76
Mar-90
Feb-91
Apr-94
May-94
となっているものもあります。
これらのセルをダブルクリックすると、それぞれ

2576/2/1
2590/3/1
2591/2/1
2594/4/1
2594/5/1
という中身?になります。

これらの書式をみると、表示形式はユーザー定義のmmm-yyとなっています。

教えていただいた方法で変換すると、それぞれ
2-1
3-1
2-1
4-1
5-1
となります。

これらの変換は正しく行われたものなのか、疑問に思ったので質問させていただきました。

こちらでは書式はいっさい触っておりません。
いただいたままの状態です。

説明不足な点がありましたらご指摘ください。

お礼日時:2009/11/16 19:36

No3です 彡O┓ペコリ


「=TEXT(A1,"M-D")」の数式はシリアル値を日付に換算してその月日を文字列関数で、例えば3月1日を3-1の値が返ってきます

3700/3/1と入力して表示形式を「Mar-00」としても見た目上が変わるだけでシリアル値は「657498」となります
このシリアル値から計算しますので表示形式を変えたとしてもパソコンの時計が狂っていない限り正しく変換されます

尚、「=TEXT(A1,"M-D")」数式の「M」は「月」を、「D」は「日」を意味しています
多分別セルに地番だけ入力した結果日付に変換されたのでしょうね?

捕捉で書きましたが回答になっていなかったらごめんなさい。^^;
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

ということは
「=TEXT(A1,"M-D")」の数式で変換して良いということですね!
そうです。
地番のみ別セルになっているため、地番が日付表示となってしまいました。

お礼日時:2009/11/16 19:15

No2さん、No3さん



お二方のやり方も確かにありますが、
「1-01」のようなデータが「1-1」になってしまいます。

「データを元に戻す」という意味ではチョット違うかと・・・。

元データがどういうものかはわからない為、一概に間違いとは言えませんが
一応 「こういう例外もある」 ということで、使用する際はご注意ください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

日付になっているものは住所の地番なので、
おそらく1-01というようなものはないと思いますが、
注意してデータをチェックしてみます。

お礼日時:2009/11/16 14:21

(1)空き列に="'"&MONTH(A1)&"-"&DAY(A1)を入れて下方向に式複写


(2)列データをコピーし、自分の列に、形式を選択して貼り付けー値、で(1)の式を消す。
これでうまく行くと思うが、データの情況がどうなっていたかわからないので、質問者側でテストしてください。
内容が35-12などなら、35-12のままではないかと思う。ばらばらではないかな。それだと
=IF(ISERROR("'"&MONTH(A1)&"-"&DAY(A1)),"'"&A1,"'"&MONTH(A1)&"-"&DAY(A1))
とすれば良いかもしれない。
例データ
データ  上記の式の結果
質問者の例だとA列書式は別の日付表示形式かも知れないが
3月2日'3-2
11月21日'11-21
12月18日'12-18
12月18日'12-18
35-23'35-23
881-1'881-1
11/31'11/31
11月30日'11-30
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
早速試してみましたが、
英語のものの表記が正しく変換できたのかがさだかではありません。
No.3に回答したものと同じになりますが・・・


表示(セルの中身?)
Mar-00(3700/3/1) は 3-1
Jan-51(3851/1/1) は 1-1
Feb-82(3882/2/1) は 2-1

となっています。正しく変換されているのでしょうか?

ちなみに日付になってしまったものはすべて住所の地番です。

お礼日時:2009/11/16 14:19

EXCEL2003が手元に無いので、多少違うかもしれませんが、


データは、CSV若しくは、Tab区切りのTXTファイルでしょうか?

[取り込み手順]
1.EXCELのシートが開いた状態で、下記の様にコマンド遷移。
 [データ]-[外部データの取り込み]-[テキストファイルのインポート]
2.対象ファイルのインポート
3.テキストファイルウィザードが起動しますので、データの形式を選択
 し、[次へ]
4.データの区切り文字を指定し、[次へ]
 CSV形式の場合は、カンマを選択
 このとき、データの区切り状態をプレビューで確認できます。
5.データプレビュー上で、該当の箇所を選択し、列のデータ形式を選択
 3-2の列項目は、文字列を選択して[完了]
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
やってみましたがうまくいきませんでした・・・

お礼日時:2009/11/16 14:17

作業列を二つほど使います


例えばA1~A10までに日付として変換された場合・・・
開いている列例えばD列のD1~D10を範囲選択して数式バーの関数の挿入をクリックして「TEXT」関数を検索、「=TEXT(A1,"M-D")」の数式を入力します
入力し終わったら「Ctrl」キーを押したまま「TEXT」関数の画面の「OK」をクリックします
範囲選択された部分が1-1,1-2,1-3,・・・・・となりますので、D1~D10をコピーして隣のE列に右クリック後「形式を選択して貼り付け」から「値」を選択して貼り付けます
日付に変換された列と{TEXT」関数を入れた列(D列)を削除してE列E1~E10までを範囲選択後コピーしてA列に貼り付けて出来上がりです

最初から一気にやらないでまず一つだけやってみて結果を見ます
成功できたら全部一気にやってみてください^^
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
早速試してみましたが、
英語のものの表記が正しく変換できたのかがさだかではありません。
たとえば・・・

表示(セルの中身?)
Mar-00(3700/3/1) は 3-1
Jan-51(3851/1/1) は 1-1
Feb-82(3882/2/1) は 2-1

となっています。正しく変換されているのでしょうか?

ちなみに日付になってしまったものはすべて住所の地番です。

お礼日時:2009/11/16 13:50

シリアル値で入力してあるということでしたら、下の式で変換し、「コピー→形式を選択して貼り付け→値」で文字列にできます。



=MONTH(A1)&"-"&DAY(A1)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2009/11/16 13:39

一度日付型に変換されてしまったものは、もう戻せないと思います。



送り主の方に、セルの書式を文字列にしてから再度データを入力してもらってください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
相手にお願いするのが確実ですよね。

お礼日時:2009/11/16 13:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!