• ベストアンサー

エクセルにて、日付の月と日のみを抽出する

お世話になっています。 ネットで調べようとしたのですが、どう検索して良いか分からず 質問させて頂きます。 エクセルにて、A1セルに『YYYY/M/D』という形で日付が入力されています。 A2セルには月の数字のみを、A3セルには日の数字のみを抽出したいです。 ただし、A1セルの日付は月、日共に1~9は01~09と表示されていないので、 日付の文字数や『/』の位置も固定ではないです。 また、他のデータにも使用するため、書式設定で『月』『日』と認識させるのは 不都合が生じてしまいます。 以上、分かる方がいましたらご回答お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

A2に =MONTH(A1) A3に =DAY(A1) で、良いと思いますよ。

rutohamuni
質問者

お礼

できました(^^) 回答頂いた中で、一番簡単で一番早く回答頂いたのでベストアンサーとさせて頂きます。 ありがとうございました。

その他の回答 (4)

回答No.5

No.4 です。No.4 のいちばん最後に書いた数式は、D2 セルで「12」(月)と指定した場合に正しく計算しませんので、あまり適切ではありませんでした。「2013/13/1」が「2014/1/1」に変換されないためです。 その数式を次式に差し替えていただけば、12 月の場合でも問題なく機能します。 =sumif(a2:a7,">="&date(2013,d2,1),b2:b7)-sumif(a2:a7,">="&date(2013,d2+1,1),b2:b7) DATE 関数は、「2013 年 13 月 1 日」を「2014 年 1 月 1 日」に変換してくれます。失礼しました。

回答No.4

年月日のデータから月のみのデータ、日のみのデータを作製するには、No.1 さんが回答されているとおり、MONTH、DAY 関数を使います。ちなみに年を求めるには、YEAR です。 >……ので、日付の文字数や『/』の位置も固定ではないです。 それは、日付を「文字列」として扱って加工することをお考えなのでしょうね。ですが Excel では通常、せっかく日付の形式になっている値を、わざわざ文字列に変えてしまうようなことはしません。日付は「数値」であるため、そのままで様々な計算に使えます。また、日付の場合は上述のとおり、簡単に月や日のみを求める関数が用意されています。 したがって今回、質問文に掲載されている課題をクリアするだけの目的なら、No.3 さんが回答されている TEXT ほかの文字列関係の関数は、不要です。ただし次のようにすることで、文字列を再び数値に戻すことも不可能ではありません。 数値を返す数式 ○ =0+TEXT(A1,"m")   ……この数式を入力したセルの書式が年月日となっている場合は、                「数値」、「0」、「G/標準" 月"」などの書式に設定を変更 × =0+TEXT(A1,"m月")  ……エラー 文字列を返す数式 ○ =text(a1,"m 月の行事") ○ =text(a1,"m")&" 月の行事" 設定を変更していなければ、数値は右揃え、文字列は左揃えで表示されます。 日付データが元々数値であることを確かめるには、日付が入力されているセルの書式を「標準」に設定してみてください。「2013/6/1」と表示されていたのが「41426」に変化するはずです。日付の正体は、こういう整数の値だということです。 「/」という文字は、「41426」という値の中に使われていませんね。ですから FIND、LEFT、MID、RIGHT、SUBSTITUTE、REPLACE などの文字列関係の関数が出る幕ではないということになります。 >また、他のデータにも使用するため、書式設定で『月』『日』と認識させるのは不都合が生じてしまいます。 おっしゃっているような単に表示させればいいケースでは、次のとおりに入力するものです。「41426」という値を使って、月や日を表示させていることになります。 数式    =a1 セルの書式 m       または       d こういった作業列は用意せずに、「他のデータにも使用する」という際に、その数式の中に MONTH などを混ぜる手段もあります。 1 月~ 6 月までの期間は 12 か月の 50 % であることを求める数式 =month(a1)/12             ……セルの書式を「パーセンテージ」などに設定 あるいは =text(month(a1)/12*100,"0.0")&" %"  ……文字列を作製 あるいは、MONTH で月を求める必要すらないというケースもあります。例えば次式は、A 列が 6 月の日付である行のみ、B 列を合計するという数式です。 =sumif(a2:a7,">=2013/6/1",b2:b7)-sumif(a2:a7,">=2013/7/1",b2:b7) あるいは =sumif(a2:a7,">=2013/"&d2&"/1",b2:b7)-sumif(a2:a7,">=2013/"&d2+1&"/1",b2:b7)              …… D2 セルに「6」と入力し、書式を「G/標準" 月"」に設定

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.3

>他のデータにも使用するため、書式設定で『月』『日』と >認識させるのは不都合が生じてしまいます。 他のデータにどのように使うかを示さないとお望みの回答は 付きにくいと思いますよ。 文字列として表示するなら A2に =TEXT(A1,"m")又は=TEXT(A1,"m月") A3に =TEXT(A1,"d")又は=TEXT(A1,"d日")

  • eneteiso
  • ベストアンサー率80% (4/5)
回答No.2

質問者様へ 参考になればいいのですが >A2セルには月の数字のみを・・・ ◆計算式の挿入方法 1)関数の挿入(fx)ボタン_をクリック(※数式バーの左側にある) 2)ダイアログボックスを表示するので…関数の分類(C)で「日付/時刻」_を選択 3)関数名(N)で「MONTH」(月を指定する)_を選択 4)OKボタン_をクリック 5)関数の引数ダイアログボックスを表示するので…シリアル値欄にデータの入っているセル(ここではA1のセル)を指定してOKボタン_をクリック 以上で、「月」の抽出が完了 >A3セルには日の数字のみを・・・ ◆計算式の挿入方法 上記の順序で進み…3)関数名(N)で「DAY」(日を指定する)_を選択 後は、上記に準ずる 以上で、「日」の抽出が完了