
No.5
- 回答日時:
質問を一見して判るように書いてほしい。
>の場合、4,5,11,12は1、6,8,9,10は2、7は3という感じです。
始終わり4月5月6月7月8月9月10月11月12月
2011年4月2011年7月1111
2011年6月2011年12月--1111111
2011年7月2011年10月---1111
112322211
のような例を挙げると良いのだ。最下行はΣで出す。
ーーー
こういう表を作ることが許されるなら
C1の4月は2011/4/1にして表示形式をm月、D1の5月は2011/4/1にして表示形式をm月、この料セルを範囲指定して+ハンドルを引っ張ると見た目が上記のようになる。
C2の式は =IF(AND(C$1>=$A2,C$1<=$B2),1,"")
12月まで式を横方向に複写
C2::K2の式をC4:K4まで式を縦方向に複写。
ーー
結果
上記と同じ
C2:K4を範囲指定してΣ
C5:K5の数の最大値の月(だい1行目)を見れば良い。関数式でもできるが、よく載っていることなので略。
具体的の上記のようなシート作成が許されない場合は式が複雑化する。
ーー
VBAで各行の期間に対し、第1行目の各列の月が含まれて居るかカウントするのは、ロジックが簡単。
ーー
上記データの合計月数は
C9セルに =SUMPRODUCT(($A$2:$A$4<=C$1)*($B$2:$B$4>=C$1)*1) と入れて右方向に式を複写すれば、
上記と同じく4-12月は
112322211
となる。上記の表の1は作らなくても良い。
この回答へのお礼
お礼日時:2011/09/16 18:59
少しわかりにくかったですね・・。
2000ちょいのデータから、月毎の分析をするのに、一瞬ぽかんとして、悩んだ挙句質問となりました。
少しぼんやりしていたのかもしれません。
ご指摘ありがとうございます。
んー。みなさん、思い浮かぶのがすごいですねえ・・。
No.4
- 回答日時:
No3の訂正と補足です。
数式でCOLUMN(A:X)とCOLUMN(A:Q)の部分がありますが、すべてCOLUMN(A:X)に統一してください。
また添付画像はF2セルが通常の日付形式で表示されていますが、元データと同じように、ユーザー定義で「yyyy/m」に設定してください。
また数式は開始時期が2011年1月から24か月間(2012年12月まで)に設定してます。
もし、その開始時期や期間を変更したい場合は「DATE(2011,COLUMN(A:X),1)」の2011の部分で開始年を、COLUMN(A:X)の部分で期間を設定していますので、この部分を適宜変更してください(たとえば36か月間ならCOLUMN(A:AK)にしてください)。
No.3
- 回答日時:
ご質問のタイトルのように、補助列などを使わずに、期間内で一番多い月をカウントするなら以下のような関数で表示できます。
最も多い月(F2セル)
配列数式なので、入力後Ctrl+Shift+Enterで確定してください。
=MODE(IF((DATE(2011,COLUMN(A:X),1)>=B2:B10)*(DATE(2011,COLUMN(A:X),1)<=C2:C10),DATE(2011,COLUMN(A:Q),1),""))
その回数(G2セル)
=SUMPRODUCT((INDEX((DATE(2011,COLUMN(A:Q),1)>=B2:B10)*(DATE(2011,COLUMN(A:Q),1)<=C2:C10)*DATE(2011,COLUMN(A:Q),1),)=F2)*1)

No.2
- 回答日時:
まず、E2セルとE3セルの書式設定の表示形式を[ユーザー定義]の
yyyy/m
として下さい。
次に、E2セルに次の数式を入力して下さい。
=IF(COUNT($B:$B)=0,"",TEXT(MIN($B:$B),"yyyy年m月")+0)
次に、E3セルに次の数式を入力して下さい。
=IF(AND(ISNUMBER($E2),MAX($E$1:$E2)<TEXT(MAX($B:$C),"yyyy/m")+0),DATE(YEAR(E2),MONTH(E2)+1,1),"")
次に、F2セルに次の数式を入力して下さい。
=IF($E2="","",SUMPRODUCT((TEXT(INDEX($B:$B,ROW($B$1)+1):INDEX($B:$B,MATCH(9^9,$B:$B)),"yyyy/m")+0<=$E2)*((TEXT(INDEX($C:$C,ROW($B$1)+1):INDEX($C:$C,MATCH(9^9,$B:$B)),"yyyy/m")+0>=$E2)+(INDEX($C:$C,ROW($B$1)+1):INDEX($C:$C,MATCH(9^9,$B:$B))=""))))
次に、F2セルをコピーして、F3セルに貼り付けて下さい。
次に、E3~F3の範囲をコピーして、同じ列の4行目以下に貼り付けて下さい。

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VLOOKUP FALSEのこと
-
if関数の複数条件について
-
【関数】=EXACT(a1,b1) a1とb1...
-
【マクロ】数式を入力したい。...
-
同じ名前(重複)かつ 日本 ア...
-
excel
-
エクセルシートの見出しの文字...
-
エクセルの文字数列関数と競馬...
-
エクセルでフィルターした値を...
-
表計算ソフトでの様式の呼称
-
【画像あり】【関数】指定した...
-
Dir関数のDo Whileステートメン...
-
【マクロ】実行時エラー '424':...
-
Excelに貼ったXのURLのリンク...
-
【関数】3つのセルの中で最新...
-
【マクロ】【画像あり】❶ブック...
-
【マクロ】【画像あり】4つの...
-
【マクロ】【画像あり】4つの...
-
セルにぴったし写真を挿入
-
【マクロ】エラー【#DIV/0!】が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでフィルターした値を...
-
if関数の複数条件について
-
エクセルシートの見出しの文字...
-
excel
-
エクセルの文字数列関数と競馬...
-
VLOOKUP FALSEのこと
-
同じ名前(重複)かつ 日本 ア...
-
表計算ソフトでの様式の呼称
-
エクセルに写真が貼れない(フ...
-
【マクロ】数式を入力したい。...
-
【マクロ】実行時エラー '424':...
-
【画像あり】オートフィルター...
-
Office2021のエクセルで米国株...
-
【画像あり】【関数】指定した...
-
エクセルのVBAで集計をしたい
-
【マクロ】【画像あり】4つの...
-
【関数】3つのセルの中で最新...
-
【マクロ】excelファイルを開く...
-
LibreOffice Clalc(またはエク...
-
エクセルのライセンスが分かり...
おすすめ情報