• ベストアンサー

MONTH関数について

Excel2007のMONTH関数について教えて下さい。 あるサイトに次のような作り方がありました A1に2012 B1に2 A2に =DATE(A1,B1,1) A3に =IF(MONTH(A$2+ROW(A1))=B$1,A2+1,"") A3をA32までオートフィル 3/1になると空白になる そこで質問です MONTH関数は、「月」の数字を求める関数ですね MONTH関数の括弧の中でROW(A1)を加えるとなぜ月替わりまで 同じ月になるのか 例えば2月の29日までは、「2」 3月1日になると「3」になるのか判りません。 その理由を教えて下さい。

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

  • ベストアンサー
noname#198951
noname#198951
回答No.1

それをするのがMONTH関数だからでは? 簡単にいうとカレンダーデータがExcelの内部に入っているという感じです。

gyouda1114
質問者

お礼

回答ありがとうございました。 私の勘違いで質問していました。 シリアル値の月を取り出して1ずつ加えると 月替わりが判るのは当然でした。 今後ともよろしく

関連するQ&A

  • month関数で

    エクセルのことでお伺いします。 today関数で今日の日付を表示することは理解しました。 そしてそこから日付の「月」だけを取り出すのにmonth関数があるというのも理解できました。 そこで取り出した月の整数は1~12までなんですがその取り出した関数に対して数字を1引きたいときに単純に関数から-1の計算式を当てはめると明治33年~とおかしくなってしまいました。正しくするにはどうしたらよいですか? 僕がやったのは 今日の場合 A1に=TODAY()関数をいれ、平成17年4月19日を表示させました。 A2に=MONTH(A1)として4を出しました。 そこの関数に=MONTH(A1)-1で4-1で3を出したかったのです。 シリアル値って言うのが引っかかっているみたいですが よく分かっていないので正しく教えていただける方がいましたら宜しくお願いします。

  • エクセルの関数について。

    エクセルの関数。 Sheet1の作業列1のA2セルに =IF(COUNTA(Sheet2!2:2)=0,"",IF(Sheet2!A2="",A1,Sheet2!A2)) →数式1とする 作業列2のB2セルに =IF(A2=$D$2,ROW(),"") →数式2とする という数式を入れA2・B2セルを範囲指定 → B2セルのフィルハンドルで下へコピーしておきます。 (Sheet2の行数以上コピーしておく) そしてE2セルに =IF(COUNT($B:$B)<ROW(A1),"",INDEX(Sheet2!B:B,SMALL($B:$B,ROW(A1)))&"") →数式3とする という数式を入れオートフィルで列方向・行方向にコピーする。 教えて頂きたいことは、数式1、数式2、数式3が何を意味しているのか。 と、この数式を使って、表を作成したのですが、ある特定の数字(コード、D2セルに入力)を入力しても反応してくれない。 (E2~H2まで、空白セルの状態になります。) (sheet2は約1200行あります。) 教えて頂けないでしょうか?

  • IF関数をひとつのセルに二つ使いたい。

    A列のセルには、 「空白」、「0.5」、「1」、「1,5」、「2」が入るのですが B列のセルには 隣接するA列が「0.5」~「1,5」までは500、 「2」以上だと1000、 A列が空白だとB列も空白にしたいです。 でも最初からB列には関数 「=IF(1<A1,1000,500)」を入れてオートフィルしているので 空白のセルも勝手に「500」に入力されてしまいます。 そもそも「=IF(1<A1,1000,500)」ではだめですよね? よろしくお願いします。

  • ROW()関数の使い方について

    今、フィルタオプションを使わずに、 重複したデータが空白になるように関数を作っています。 B行に業務内容を書き込み(ミーティング、書類作成 など) C行に重複した業務内容を空白で表示させるという関数を 完成させたいのですが、ROW()関数を使い下にフィルしたとき、 『B$2:B3』の3という数字部分が1つずつ変わるようにしたいのですが、 下記式のような使い方ではエラーになります。 どのようにすればよいのでしょうか?    A         B           C         D 1 氏名    業務内容      業務内容 2 田中    ミーティング    ミーティング 3 田中    書類作成      書類作成 4 田中    ミーティング    (空白) 5  C4=IF(MATCH(B4,"B$2:B"&ROW()-1,0),"",B4)

  • EXCLEのMONTH関数について教えてください。

    宜しくお願いします。 以下の関数 SUMPRODUCT((MONTH('6月'!$K5:$K40)=1)*('6月'!$A5:$A40=1),'6月'!$H5:$H40) を使うと未入力の行まで1月に合計してしまいます。 なぜでしょうか? (MONTH('6月'!$K5:$K40)=1)で1月のみを抽出したいのですが・・ 教えていただきたいです。 ちなみに IF(AND(MONTH('6月'!$K5)=1,'6月'!$K5<>"",'6月'!$A5=1),'6月'!$H5,"") では '6月'!$K5<>"", を入力して避けました。

  • ExcelのSMALL関数について

    ExcelのB列(B2:B50)にフラグ「0」または「1」が入力されています。 フラグ「0」が入力されている行番号を関数を使用して取得したいと思っています。 B列のフラグは順次更新されており、フラグ「0」の個数は複数あります。 下記の関数式(以下多めにオートフィル)で上記のことができるようになったのですが、 =IF(COUNTIF(B$2:B$50,0)<ROW(A1),"",SMALL(INDEX((B$2:B$50<>0)*10^5+ROW(B$2:B$50),),ROW(A1))) SMALL関数式の部分↓↓の意味がよくわかりません。 SMALL(INDEX((B$2:B$50<>0)*10^5+ROW(B$2:B$50),),ROW(A1)) どなたかご教授いただけないでしょうか。

  • Excelの関数式について

    ExcelのB列(B2:B50)にフラグ「0」または「1」が入力されています。 フラグ「0」が入力されている行番号を関数を使用して取得したいと思っており、 下記関数でできるのですが、フラグ「0」が複数連続で続いた場合は、1つ目だけの 行番号を取得したいのですが、どのように変更したらよいのでしょうか。 D列に下記関数式を入力して、以下オートフィルしています。 =IF(COUNTIF(B$2:B$50,0)<ROW(A1),"",SMALL(INDEX((B$2:B$50<>0)*10^3+ROW(B$2:B$50),),ROW(A1))) 例えば、下記のようば場合は、行番号「2、5、8」を取得したいです。    A   B 1      -1 2       0 3      -1 4      -1 5       0 6       0 7      -1 8       0 9      -1 ・ ・

  • エクセルの関数についての質問です。

    DATEDIF関数を使って生年月日から年齢を求める式を作り、それにIF関数を組み合わせたいと思って試したのですが、うまくいきませんでした。何か良い方法があったら教えて下さい。 A1に生年月日を入力し、B1に、 =DATEDIF(A1,TODAY(),"Y") で年齢を求め、オートフィルで複写すると、A列に生年月日を入力していない場合、B列にある数値が 出てしまうので、A列が空白の時は、B列も空白にしたいのです。そこで =IF(A1="",B1="",DATEDIF(A1,TODAY(),"Y")) としてみたところ 循環参照 している。と言うエラーメッセージがでてしまいます。 よろしくお願いします。

  • 日付を表示

    H3に日付を入力してます。 B6にこの関数を入力してます。 =IF(DATE(YEAR($H$3),MONTH($H$3),1)*DATE(YEAR($H$3),MONTH($H$3),-5+ROW()),DATE(YEAR($H$3),MONTH($H$3),-5+ROW()),"") これをB6~↓にコピペしてます。 なんだか違う気もしますが、無事に表示されてます。 やりたい事は、月によって日数が変わるとき例えば 29日や31日など この時現在は空いたセルによく月の1日や2日が表示されるのを空白にしたいのです。 後上記の関数以外の用方法がありますか! ちなみにC列には、WEEKDAY関数で曜日を表示させてます。 おねがいします。

  • EXCEL関数 空白セルを詰める関数

    図1の表を図2のようにオートフィルタを使わず表示させる関数で下記を見つけましたが、実際使うときには、番地がA1からの位置ではなくAA60ぐらいの位置でこの関数を実行すると表示されません。 どの部分をその番地にあわせるとよいでしょうか? <図1>     A     B 1   あいう 2         えお 3   かきく 4         けこ 5   さしす <図2>各行の空白セルを詰めて表示させる     A     B     10  あいう   えお 11  かきく   けこ 12  さしす 13 14 【関数】 A10: =IF(ROW(A1)>COUNTA(A$1:A$5),"",INDEX(A$1:A$5,SMALL(IF(A$1:A$5<>"",ROW($A$1:$A$5),""),ROW(A1)))) Ctrl + Shift + Enterキーで式を確定します。 右と下にコピーします。

専門家に質問してみよう