![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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)
![「エクセル 期間内で一番多い月をカウントす」の回答画像3](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/b/1223543_5497e91fa623d/M.jpg)
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行目以下に貼り付けて下さい。
![「エクセル 期間内で一番多い月をカウントす」の回答画像2](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/2/1235215_5497e91f7d309/M.jpg)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 不動産業・賃貸業 賃貸の解約について質問です。 不動産会社の言うことが分からず質問させていただきました。 新築のマンシ 1 2022/08/06 19:35
- その他(住宅・住まい) 賃貸の解約について質問です。 不動産会社の言うことが分からず質問させていただきました。 新築のマンシ 6 2022/08/06 19:42
- 出産 産休と育休の間が空く場合、「育児休業を開始する前6ヵ月間」はいつが対象になりますか? 1 2022/06/02 20:59
- Excel(エクセル) エクセルシートの合計の変動 5 2022/04/05 15:56
- 派遣社員・契約社員 派遣会社の有給の持越し期間は? 4 2022/09/10 10:55
- Excel(エクセル) エクセル「社員の重なっている仕事時間の算出方法について」教えてください。 6 2023/02/06 00:10
- Excel(エクセル) Excelで2つのセルにある日付を参照させ期間として1つのセルに表示したいです。 例 c9セルに開始 3 2023/04/06 12:16
- Java Java 年数計算 3 2023/01/28 10:52
- Excel(エクセル) エクセルで最初に値が入っているセルを見つける方法はありますか? 2 2023/07/18 14:58
- アルバイト・パート 初めてバイトを始めました。まだ初めてから1ヶ月程ですが、少し違和感がします。 その職場はタイムカード 1 2022/05/07 01:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 1の位の数字で処理を分岐...
-
-1234 を (1234) と表記する由...
-
他部署からもらう データで、 ...
-
エクセルで現場ごとに機材の移...
-
Excelのセルの色を変えた行(す...
-
とびとびの大量セルを選択した...
-
ある表にフィルターをかけて出...
-
Excelを無料で使うには? パソ...
-
エクセルの数式バーのフォント...
-
WPS OFFICEでの縦書きについて
-
Excelでの記号と特殊文字につい...
-
エクセルの数式について教えて...
-
MACにおけるエクセルの入力トラ...
-
エクセル シート表示
-
Lookup関数
-
IFとIFS関数
-
エクセルで特定のセルに入力が...
-
エクセル共有したが、アクセス...
-
LOOKUP関数を使えばいいのでし...
-
エクセルで「-0.0」と表示さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報