「みんな教えて! 選手権!!」開催のお知らせ

以下の表をご覧ください
やりたい事は、表から、行の件数を出すだけです

MONTH関数にて、1回、月を出して、そこから月を
集計する方法はありましたが

関数1つで、列を増やさずに集計をしたいです
なお、Month関数は利用してもOKです

ご存じの方いましたら、教えて下さい

集計表
1月 1
2月 2

【表】
1/1  Aさん
2/1  Bさん
2/20  Bさん

A 回答 (3件)

こんにちは



セル位置が不明なので、イメージの式になりますけれど・・

集計表の「1月」の右側のセルに
=SUMPRODUCT((MONTH(表日付列範囲)=ROW(A1))*(表日付列範囲)<>""))
を入力して、下方にフィルコピーでできると思います。

※ 「表日付列範囲」は「表」の日付のある範囲を指定します。
 範囲内は、日付または空白セルのみであることが条件です。
 それ以外の値(文字列など)があると、上式はエラーになります。
    • good
    • 0
この回答へのお礼

ありがとうございますためしてます

お礼日時:2024/03/22 13:53

SUMPRODUCT関数を用いた回答が2つ続いたので、COUNTIFS関数を用いた回答をお示ししたいと思います。



添付画像をご覧ください。ご質問者の説明にある「集計表」と「【表】」は別シートという前提にしてみました。画像①のような【表】があったとして、ここから別シートに画像②のような集計表を作成するものとします。
画像②のように、集計結果を表示すべきセル(画像②ではB2セル)に

=COUNTIFS(【表】!$A:$A,">="&A2,【表】!$A:$A,"<="&EOMONTH(A2,0))・・・(a)

という数式を入れて、下方向へコピーしています。

但し、これにはひと工夫必要です。画像③をご覧ください。集計表の「月」の中身がシリアル値になっています。「2024年1月」のように入力して、これを表示形式のユーザー定義で「m"月"」として「○月」と表示するようにしています(つまり「1月」と見えているセルの中身は「2024/1/1」になっているという訳です)。

この方法のメリットは極めて実務的な「運用方法」に関わるものです。

ご質問者の【表】と集計表の実際の運用方法が不明ですが、例えば1月から12月までの集計を行い、年が変わったら、ファイルごと新しいものにしてしまう場合、No.1さんやNo.2さんの回答にある「月を特定する方法」で足ります。

しかし、1年を超えて使用する場合だと、「1月が本年と前年との2年分ある」というようなことが起こります。この場合、No.1さんやNo.2さんの回答の方法使って1月分を集計しようとすると2年分が集計されることになります。つまり複数年分が纏めて集計されることになり、これだと不都合な場合もあると思います。

これに対して、集計表の「月」をシリアル値にして上記(a)の数式を用いる方法であれば、仮に複数年に亘って使用し続けるという運用の場合でも、集計表の「月」の中身はシリアル値で「年」も含まれた情報になっているので単年度分の当該月を確実に集計できるという点がメリットになります。
「列を増やさずに、月だけの件数を求める場合」の回答画像3
    • good
    • 0

条件や表の項目の都合でなんちゃらif系の関数じゃうまくいかない場合は、



=sumproduct((text(表の日付範囲,"m月;;")=隣のセル)*1)
って感じにsumproduct関数を使います。
「列を増やさずに、月だけの件数を求める場合」の回答画像2
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報