ここから本文です

エクセルの日付入力について教えて下さい。

scg********さん

2011/8/1612:03:00

エクセルの日付入力について教えて下さい。

A1セルにyyyy/mm/dd表示で年月日が入力されています。この年月日から「年」と「月」だけを取り出して、B1セルにyyyy/mmの表示をさせたいのですが、その方法について教えて下さい。
セルの書式設定→表示形式→ユーザー定義にて「yyyy/m」と設定しても日にちについては残っている状態になってしまいますが、A1セルの日にちを取り出さないようにしたいと思っています。

補足他のセルB1に入力されている「yyyy/mm」とどちらの年月があとなのか(新しいのか)を比較する必要があるのですが、この比較においては日にちは無視しています。つまりA1「2011/08」、B1「2011/08」であればイコールとしたいのですが、A1・B1セルともに日にちが残ってしまっており、例:A1「2011/08/20」、B1「2011/08/15」ということになり、A1>B1となってしまいます。この状態を解消したいと思ってます。

閲覧数:
4,943
回答数:
6

違反報告

ベストアンサーに選ばれた回答

riv********さん

2011/8/1612:21:33

>日にちについては残っている状態になってしまいますが
これは表示形式は変わったが「数式バー」上では「日」が残っているのでそれを消したいということでしょうか?
そうであれば日付形式ではなく
=year(A1)&"/"&month(A1)
ただしこれは「文字列」ですのでそのままでは左詰めになります。
書式の配置で右詰めにしたほうがいいと思います。

質問した人からのコメント

2011/8/17 00:50:07

ありがとうございました。希望どおりの結果を得ることができました。

ベストアンサー以外の回答

1〜5件/5件中

並び替え:回答日時の
新しい順
|古い順

山田立男さん

2011/8/1616:25:20

DATE関数は指定した日付(年、月、日)から、シリアル値に変換する関数です。ただし、表示形式を「標準」のままDATE関数を使用すると、自動的に「日付」の「1997/3/4」の表示形式が適用されます→書式で表すと、DATE(年,月,日)となります→引数の年は、通常1900~9999で指定しますが、0~1899でも指定可能です。0~1899の場合は、1900を加算した年がその年になります。月の指定は、1~12ですが、12より大きい数値を指定すると翌年の月に換算されます。日は、1~その月の最終日で指定しますが、最終日より大きい数値で指定すると翌月以降の日に換算され、負の数値で指定すると、前の月に遡ります→左図は、種々の年月日を、DATE関数で変換したものです→引数による違いを確認してください
上図では、DATE関数で求めた年月日が直接シリアル値ではなく、「1997/3/4」の表示形式になっています。これは、表示形式を「標準」のまま、DATE関数を使用したためです。あくまでシリアル値を直接表示するには、「日付」を「標準」に戻す必要があります。なお、図のように「日付」の表示形式は、種々の表示形式に変更できます
http://www.kenzo30.com/ex_kisotyu/ex_ks_tyukyu9_8.htm#日付/時刻関数(DATE、TIME関数)
「2005年9月17日」から25日後の日付を求める→A3に「=A1+A2」と入力する
エクセル内部では、どちらも整数であり、シリアル値の性質を考えると、この式で25日後の日付が求められるはずである
[Enter]キーを押して入力を確定すると、25日後の日付が出る→「2005年9月17日」から25日前の日付を求める
3と同様に[Enter]キーを押して入力を確定すると、その日付が出る→「2005年9月17日」と「2005年9月23日」の間は何日あるかを求める→両方とも、エクセル内部では整数のシリアル値を持っていて、単位は「日」であるので、単純に「=A2-A1」と入力すれば、その答えが求められるはずである→答えは「6」になるはずであるが、式の結果表示が日付になってしまう。「1900年1月6日」のシリアル値は「6」であるので、計算結果は正しい。表示書式を変えればいいだけである
書式変更の対象になるセルA3を選択し、[Ctrl]+[1]キーを押す→《セルの書式設定》ダイアログボックスの《表示形式》タブを選んで、《分類》を《標準》にする→正しい値が表示される
http://www.excel-jiten.net/formula/calc_date.html
9時から8時間後の時刻を計算する→セルA3に「=A1+A2」と入力する→[Enter]キーを押して入力確定をすると、左図のように、正しい時刻が計算できる
http://www.excel-jiten.net/formula/calc_time.html
自動更新しない<今日の日付>の入力は、 [Ctrl] キーを押しながら[;] キー→ 自動更新される<今日の日付>の入力は、 =TODAY()→ 「2008年8月21日」や「平成20年8月21日」のような日付表示に変更するには、[セルの書式設定] → [表示形式] → [日付] から→ エクセル2007は [ホーム] タブ → [数値] の [表示形式] ▼から表示されるメニューからも変更できます
http://www.geocities.jp/oyakamassan_m/moji/moji31.html

non********さん

編集あり2011/8/1613:31:04

B1に年月だけ取り出すと言うより、
A列が指定した年月より前か後か、あるいは同じ年月課の比較をしたいってことのようですね?
その場合は、A列の日にちを一定にする必要があります。
補足のように、A列とB列にそれぞれの日付が入力されているなら、
C1に、
=IF(A1="","",IF(EOMONTH(A1,0)=EOMONTH(B1,0),"同",IF(EOMONTH(A1,0)>EOMONTH(B1,0),"未来","過去")))

あるいは、A列とB列で、年月だけの比較をさせて、
=IF(A1="","",IF(TEXT(A1,"yyyy/mm")=TEXT(B1,"yyyy/mm"),"同",IF(TEXT(A1,"yyyy/mm")>TEXT(B1,"yyyy/mm"),"未来","過去")))

B列と比較してA列が過ぎ去った月なら「過去」、先の月なら「未来」、同月なら「同」としてみました。

sai********さん

2011/8/1613:16:47

補足について
>つまりA1「2011/08」、B1「2011/08」であればイコールとしたいのですが、
>A1・B1セルともに日にちが残ってしまっており、例:A1「2011/08/20」、
>B1「2011/08/15」ということになり、A1>B1となってしまいます。

「yyyy/mm」の表示形式は、日付の年月のみ表示しているだけで値は
日付の年月日です。したがって、「2011/08/20」、B1「2011/08/15」の
年月の比較は、年月を取り出してその比較をしないと、=にはなりません。
画像で
C1に
=IF(AND(YEAR(A1)=YEAR(B1),MONTH(A1)=MONTH(B1))=TRUE,"=","≠")
A1とB1の年と月の両方を比較し、その結果がTRUE(等しい)のときは、=と表示、
それ以外は、≠(等しくない)と表示する。

補足について
>つまりA1「2011/08」、B1「2011/08」であればイコールとしたいのですが、...

ja7********さん

2011/8/1612:20:37

B1に
=TEXT(A1,"yyyy/mm")

ab_********さん

編集あり2011/8/1612:35:02

例えば、
=YEAR(A1)*100+MONTH(A1)*1-YEAR(A2)*100-MONTH(A2)*1
というふうにして if文中に使うことができると思います。


----
ユーザー定義にて
yyyy/mm
と設定してみて下さい。



すでに存在する
yyyy"年"mm"月"dd"日"
などから編集しようとすると、なぜか日付がくっついてくる現象が起きました。

直に、
yyyy/mm

yyyy/m
と設定すると、望み通り表示されると思います。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる