「ブロック機能」のリニューアルについて

エクセルもマクロも初心者です。

2008年8月29日  という日付を別シートに引用したいのですがうまくいきません。
情報として欲しいのは“2008年8月”の部分です。
調べてみたら文字の引用ができる関数があったので、実際に使ってみました。
LEFT(Sheet1!A1,9)
MID(Sheet1!A1,9)

どちらをやっても39689という数字が出てきます。
なぜこのようになるのでしょうか?

そして、どうすればうまく引用できるのでしょうか?

教えて!goo グレード

A 回答 (5件)

日付はデータは1900/1/1を1とするシリアル値で扱われます。

2008/8/29は、1900/1/1から数えて39689日目なので、シリアル値は39689になっています。

今回のように“2008年8月”と欲しいのでしたら、=Sheet1!A1 として、セルの書式設定で見た目上変えてやります。

または、シリアル値を文字列に変換しての表示になります。文字列に変換する際に、日は不要なので取ってしまいます。
=TEXT(Sheet1!A1,"YYYY年M月")
    • good
    • 6
この回答へのお礼

ご回答ありがとうございます。
関数で引用したセルはなぜか書式設定で変えられないのですが、
あいてるセルに=TEXT(Sheet1!A1,"YYYY年M月")
で作り変えて引用したらうまくいきました!

これをうまくマクロでできるようにしようと思います。

お礼日時:2008/10/14 17:13

ANo,2 です。


おそらく、すでに解決済みだと思いますが・・
39689 と表示されているセルを他の方がおっしゃるように =LEFT(A1, 9)とかではなく、=Sheet1!A1 にしてください。
    • good
    • 0

その引用したシートの「表示形式」は何になってますかね?



表示形式を「日付」にすればOKだと思いますが。
    • good
    • 0
この回答へのお礼

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

それがなぜか表示形式をどのようにしても変わらなくて困っていました。
とりあえず違う方法で免れたものの・・・なぜこのようになってしまったのかよくわかりません。

お礼日時:2008/10/14 17:20

エクセルによる日付は「2008年8月29日」や「2008/8/29」「平成20年8月29日」などさまざまな表示ができますが、日付を数値化したものはどれも同じでありその数値がシリアル値というものです。

これによって日付の計算ができるのです。

ですので表示が2008年8月29日となっていても計算対象はシリアル値にということになります。

この場合、単純に
=Sheet1!A1
としセルの書式設定で表示形式をユーザー定義にし
yyyy"年"m"月"
とすることで解決できると思います。
    • good
    • 0
この回答へのお礼

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

書式設定でユーザー定義にしてもシリアル値のままでした。
No1の方のところでも書きましたが、他のセルに書き換えて使うことでとりあえずしのぎましたが、もっと他の方法もありそうだなって思います。

お礼日時:2008/10/14 17:18

こんにちは、私も初心者ですが・・



単純に39689と表記されているセルを右クリックして「セルの書式設定」から表示形式タブで「日付」を選んで"2008年8月"の形にすればいいのではありませんか?
ちなみに39689となるのはシリアル値と言うそうです。

以下ヘルプから
(日付はシリアル値として連続番号で格納されて計算が行われます。既定では、1900 年 1 月 1 日がシリアル値 1 になります。2008 年 1 月 1 日は 1900 年 1 月 1 日から 39,448 日後に当たるので、シリアル値は 39,448 になります。)
    • good
    • 1
この回答へのお礼

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

書式設定で日付にしようとしてもなかなかしぶとく・・・結局そのままシリアル値というもののままでした。
なぜこうなってしまったのかは未だ理由がわかりません。

それにしても・・・シリアル値ですか・・・勉強になりました。

お礼日時:2008/10/14 17:15

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

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング