- 締切済み
当月含めて過去3ヶ月間で連続するデータを数えるには
当月分の実績を追記し、次の表を毎月作成したいのです。 例えば、当月が8月の場合 6~8月の期間に連続で2ヶ月または3ヶ月、白丸マークが記載された場合 O列に連続した数値を表示させたいのです 2ヶ月連続の場合・・・2 3ヶ月連続の場合・・・3 すずきさんは、7~8月が連続しているので「2」 なかださんは、6~8月が連続しているので「3」 さいとうさんは、4~5月が連続しているが、6~8月の対象期間ではないので「空白」 過去の質問を探しましたが、該当する回答が見当たらなかったため 皆様のお知恵をお借りしたく、ご教示のほどよろしくお願い致します。 (Windows7、EXCEL2010を使用しています)
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- bunjii
- ベストアンサー率43% (3589/8249)
>過去の質問を探しましたが、該当する回答が見当たらなかったため皆様のお知恵をお借りしたく、ご教示のほどよろしくお願い致します。 >(Windows7、EXCEL2010を使用しています) 質問と回答No.1への補足の文言から推測して下記の数式の方が理解し易いでしょう。 O2=IF(HLOOKUP(EOMONTH($P$1,-2)+1,$B$1:$M$10,ROW(),FALSE)="○",IF(HLOOKUP(EOMONTH($P$1,-3)+1,$B$1:$M$19,ROW(),FALSE)="○",IF(HLOOKUP(EOMONTH($P$1,-1)+1,$B$1:$M$19,ROW(),FALSE)="○",3,2),IF(HLOOKUP(EOMONTH($P$1,-1)+1,$B$1:$M$19,ROW(),FALSE)="○",2,"")),"") P1セルには当月の値として2013/8/1のシリアル値が設定されています。 B1からM1セルには2013/4/1から毎月の初日をシリアル値で入力されています。 O2セルを下へ必要数コピーしてください。 計算途中は各関数の引数を確認すれば理解できるでしょう。 貼付画像はExcel 2013で検証した結果です。 Excel 2010でも再現できるはずです。
- keithin
- ベストアンサー率66% (5278/7941)
A1セルには年/月/日を入れるので,MONTH(A1)で1から12までの数字が現れることまでは判りましたね。 じゃぁ一度実際にエクセルを起動して,A1からA12までの12個のセルに1から12までの数字を記入してください さらに B1に =A1-4 C1に =MOD(A1-4,12) とそれぞれ記入,12行までコピーして1月から12月までのそれぞれでどういう計算結果が現れるのか,必ず手を動かして一度実際に計算してみてください。 改めてあなたのご相談の絵を見直して,横方向に4月から始まり,12月の次に1月に戻ってる様子を確認して下さい。 そのレイアウトで,追加ご質問の計算がどういう具合に当てはまるのかよく観察して下さい。 たとえば今日が6月なら,4,5,6月の3列を見たいワケです。すると例えば「真ん中」はC列,A列から右に2つ目ですね。 「3ヶ月分の列」はB,C,Dの3列,A列から右に1列目から始まる横3個のセルを調べる必要があるわけです。 ご質問の8月なら,ナニ列からドコ列までを見たいのか,「真ん中」は何列なのか,指折り数えて計算が正しい事を確認して下さい。 それが1月や2月ならどうである必要があるのか,確認して下さい。
- keithin
- ベストアンサー率66% (5278/7941)
「当月」という前提なので、TODAY()関数を利用して毎日の「今日」を基準に計算する事とします その前提に置いて、4月及び5月の期間中は「計算できない」のは仕方ないものとします 簡単のため、たとえばB1以降のセルには「2014/4/1」のように年/月/1日で記入し、表示だけ4月と表示させておくこととします まぁでも結果を確認できないんじゃしょうがないので、A1セルに=TODAY()を記入し、A1に記入した年/月/日が「今日」であるとしてお話しを勧めます。 #参考:計算の方針 >2ヶ月連続の場合・・・2 2個○があって、真ん中が○なら2 >3ヶ月連続の場合・・・3 3個○があれば3 それ以外はすべて"" O2: =IF($A$1<$D$1,"N/A",IF(OFFSET(A2,0,MOD(MONTH($A$1)-4,12))<>"○","",CHOOSE(COUNTIF(OFFSET(A2,0,MOD(MONTH($A$1)-4,12)-1,1,3),"○")+1,"","",2,3))) 以下コピー。 #ご自身が例として掲示されたそのエクセルの配置でまずは計算して上手くいくことを確認してから、改めて本番のシートに数式を自力で修正してご利用ください。
補足
早々と回答いただきありがとうございました。 計算結果は思った通りの内容で、大変助かりました!! >2個○があって、真ん中が○なら2 私にはとても思いつかない内容でした。 追加の質問で申し訳ありません。 関数をこんなにもたくさん並べたことが無く 算数レベルの質問になっていますが理解に苦しんでおります。 次の式はどのように解釈すればよいのでしょうか? MOD(MONTH($A$1)-4,12) 当月(8月)から-4?? 更に12で割る?? 今一度、ご教示くださいますようお願いいたします。