• ベストアンサー

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<>"", を入力して避けました。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

=MONTH(0)が1を返すのでそうなるのでしょう。 =SUMPRODUCT((MONTH('6月'!$K5:$K40)=1)*('6月'!$K5:$K40<>"")*('6月'!$A5:$A40=1),'6月'!$H5:$H40) でいかがですか?

hero-yasu
質問者

お礼

回答いただきありがとうございます。 コピペさせていただきました! 助かりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

未入力は1990/01/00という日付になります。 これをカウントしないというなら SUMPRODUCT((MONTH('6月'!$K5:$K40)=1)*('6月'!$K5:$K40>0)*('6月'!$A5:$A40=1),'6月'!$H5:$H40) として未入力行を排除するか SUMPRODUCT((TEXT('6月'!$K5:$K40,"yymm")="0701")*('6月'!$A5:$A40=1),'6月'!$H5:$H40) のように年月で抽出してください。

hero-yasu
質問者

お礼

回答いただきありがとうございます。 未入力は1990/01/00という日付になるんですね。 初耳でした! その他の関数もちょっと難しそうですけど、興味があるので 勉強してみます!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 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」になるのか判りません。 その理由を教えて下さい。

  • Excelの関数でVALUE!(エラー)を無視して、SUMPRODUC

    Excelの関数でVALUE!(エラー)を無視して、SUMPRODUCT関数など計算するにはどうすればよろしいでしょうか? 過去に教えて頂いたのを更に応用したものです。 月度の数字H3の数字を入れると、横のJ4とK4が自動的に金額が入るようになっています。J4が月ごとの合計金額→関数:=IF(H3="","",SUMPRODUCT((MONTH(D3:D20)=H3)*((F3:F20))))を使用し、K4が月ごとの最大金額→関数:=IF(H3="","",MAX(INDEX((MONTH(D3:D20)&""=ASC(H3))*F3:F20,)))を使用しております。また、D列の西暦年月日には、D3から関数:=IF(ISBLANK(A3),"",DATEVALUE(A3&"年"&B3&"月"&C3&"日"))で表示ができるようにしてあります。 そこでD15からD20については、ISLANK関数を使っているのでA3が空白な為、VALUE!(エラーを返す)のを非表示になります。この場合、D15~D20の関数を削除すれば、J4とK4は正常に表示されますが、D15~D20に関数が入ったままだとJ4とK4はVALUE!を返しエラー表記になってしまいます。回避する関数(J4とK4)はどのようにしたらよろしいでしょうか?また、西暦年月日を参照せずに、B列の月項目の数字で月を判別するにはどうすればよろしいでしょうか?(H4の数字入力により) ※参考までにD3より下、関数:=DATEVALUE(A3&"年"&B3&"月"&C3&"日")で通常入力すると、必ず、D15~D20はVALUE!関数エラーで表示されます。

  • month関数で

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

  • エクセル IF関数 条件を満たす行に印をつける

    A1:J30までにランダムな数値が入力されている表があります。M1:N4には検索値を入力できる箇所があり、条件に該当する行があればK列に○を付ける、ということがしたいです。その条件は、 (1)M1かN1に該当する (2)M2かN2に該当する (3)M3かN3かM4かN4に該当する この3条件のすべてを満たす行があればK列に○です。 いろいろ調べて、IF関数とsumproductを組み合わせてやってみたのですが、正しい結果にならずお手上げ状態です。(ちなみにこれ↓長すぎなのもネック。。。) =IF(AND(SUMPRODUCT((A1:J1=$M$1)+(A1:J1=$N$1))>=0,SUMPRODUCT((A1:J1=$M$2)+(A1:J1=$N$2))>=0,SUMPRODUCT((A1:J1=$M$3)+(A1:J1=$N$3)+(A1:J1=$M$4)+(A1:J1=$N$4)>=0)),"○","") IF関数でなくてもできれば何でも良いので、教えてください。 よろしくお願いいたします。

  • エクセル関数について

    エクセルでデータベースを作っています。別のシートからデータを抽出して合計を出すというものなのですが、どうも関数がうまくいきません。 別のシートには日付・現場名・費目・時間・金額などが入力されています。(オートフィルタが使われていました)そしてデータベースには現場名と費目から金額の合計を抽出したいのですが、どんな関数を使っていいのか分かりません。 =SUMPRODUCT((条件1)*(条件2)*....(集計する数値)) =SUMPRODUCT((入力!$C$3:$C$9810=Sheet1!$B3)*(入力!$G$3:$G$9810=Sheet1!C$1)*(入力!$K$3:$K$9810)) というものを使っていたのですが、別シートのデータが入力されていない所まで範囲を指定するとエラーになってしまいます。 =sumifだとエラーにならないのですが、私の技術では1つの条件(現場名だけ)しか抽出、合計できません。 入力されていない所を範囲指定してもエラーにならなくて上の事が出来る関数はないでしょうか、よろしくおねがいします。

  • エクセル 関数 MONTH

    いつも大変御世話になっております。 WindowsXP環境でエクセル2003を使用しています。 C5セル内に以下文字を入力して「test_201111.txt」を表示しています。 ※YEAR(TODAY()):YYYY / MONTH(TODAY()):MM ="test_"&YEAR(TODAY())&""&MONTH(TODAY())&".txt" これは10~12月は関数箇所は表示されるんですが 1~9月はMONTH(TODAY())自体が頭に"0"がつかないので困っています。 これはもうどうしようもないのでしょうか? 1~9月には頭に0をつけたいのです。 マクロを使ったり、他のセルにYYYYMMを記載してそこから日付を読み込ますようなものは 作成せずに、上記関数だけでどうしても解決したいのですが可能でしょうか? もしご存知の方がいらっしゃるようでしたら、ご教授願いますでしょうか? 以上、何卒宜しくお願い致します。

  • 部屋の予約表を氏名の性のみ参照

    いつもお世話になります windows7 エクセル2010 です。 ご指導を仰ぎたいのは、 1 シート「10月」の7の行のように氏名の「性」を参照したい。   ※ただし シート「入力」には記入されていません。       これはまだ関数が分からないので。   どういう数式にすればいいか教えていただけませんか。 9の行のように「記入」した時はラップしたとき赤の背景色 現在は下記のような関数が =IF($A8="","",IF(SUMPRODUCT((入力!$D$2:$D$100=$A8)*(入力!$G$2:$G$100<=B$5)* (入力!$H$2:$H$100>B$5))>0,IF(SUMPRODUCT((入力!$D$2:$D$100=$A8)* (入力!$G$2:$G$100<=B$5)*(入力!$H$2:$H$100>B$5))>1,"●","○"),"")) 条件付き書式で ○が青 ●が赤 です

  • エクセル関数 入れ子の作り方 コピー可能?

    エクセル関数の入れ子の作り方で教えてください。 IF関数が3つ入れ子になる状態を作りたいのですが、 一つ一つのIF関数の式が長いので、動作を確認するために、 とりあえず3つのセル(A1,A2,A3)に一つずつ作ってみました。 この時A1,A2の偽の値には仮に”偽”と入れて作ってあります。 それぞれのIF関数は正しく出来ていたので、A3の式をA2の偽の値へ、 A2の式をA1の偽の値へ、と入れ子にしたいです。 コピーして貼り付けたいのですが上手くいきません。 ちなみに数式は A1 =IF(AND(K31<>TRUE,K33<>TRUE,K35<>TRUE),"","偽") A2 =IF(AND(K35=TRUE,INDEX(H19:H24,K18)="-"),J37,"偽") A3 =SUM(IF(K31=TRUE,INDEX($F$19:$H$24,K18,1),0),IF(K33=TRUE,INDEX($F$19:$H$24,K18,2),0),IF(K35=TRUE,INDEX($F$19:$H$24,K18,3),0)) です。一つのセルですべての条件を満たす必要があり、他のセルは利用できないので、 なんとしても入れ子にしなくてはなりません。 すべてを打ち込みしないとダメでしょうか? 検索してみましたがヒット出来ませんでした。 どうかよろしくお願いします。

  • excel 月日から第○週間目と表記する関数

    A1セルに2018/5/25と入力します。 B2に以下の関数 =IF(A1="","",INT((DAY(A1)+WEEKDAY(A1-DAY(A1)+1)-2)/7)+1) 結果 4(週間目)が出ました。 次に MONTH(A1)&"月第"&"週目" 結果 5月第周目 これを 「5月第4週間目」と表記したいのです。 =IF(A1="","",MONTH(A1)&"月第",INT((DAY(A1)+WEEKDAY(A1-DAY(A1)+1)-2)/7)+1&"週目") 結果 「この関数に対して、多すぎる引数が入力されています」とエラーメッセージが出ます。 どこが間違っているのでしょうか? 宜しくお願いします。

  • SUMPRODUCT関数を使った条件分岐ができない

    エクセル2010を使っておりますが、IFとSUMPRODUCTを使った関数のことで伺います。 旅費の精算をしておりまして、I列に氏名、J列に出発日、K列に到着日が入っております。 (1行と1つの出張について入力してあります) 同じ氏名で、他の出張と出発日又は到着日が一部、又は全部重なる場合は「重複」、帰ってきた翌日から出張の場合は「連日」、両方の条件を満たすときは「重複、連日」と表示されるようにしたく、以下の関数式を組みました。 しかし、「重複、連日」と「連日」がうまく表示されません。 連日に関しては、I列に氏名が複数入力されていれば表示されてしまいます。 どこをどう直せば、意図するように表示されるのか、教えていただけないでしょうか。 長文の関数で大変申し訳ないのですが、よろしくお願いいたします。 =IF(AND(SUMPRODUCT((I$6:INDEX(I:I,1000)=I6)*(J$6:INDEX(J:J,1000)<=K6)*(K$6:INDEX(K:K,1000)>=J6))>1,OR(SUMPRODUCT((I$6:INDEX(I:I,1000)=I6)*(K$6:INDEX(K:K,1000)=J6-1))>=1,SUMPRODUCT((I$6:INDEX(I:I,1200)=I6),(J$6:INDEX(J:J,1200)>=K6+1))>=1)),"重複、連日",IF(SUMPRODUCT((I$6:INDEX(I:I,1000)=I6)*(J$6:INDEX(J:J,1000)<=K6)*(K$6:INDEX(K:K,1000)>=J6))>1,"重複",IF(SUMPRODUCT((I$6:INDEX(I:I,1000)=I6)*OR((K$6:INDEX(K:K,1000)=J6-1),(J$6:INDEX(J:J,1000)>=K6+1)))>1,"連日","")))