次の方法で共有

カウント方法

Anonymous
2024-11-15T06:52:50+00:00

下記表のA,B,C,Dの合計を関数を使ってカウントしたいのですが、

カウントの仕方が、A,B,C,Dごとの○▢△のどこかにデータが入っていれば、いくつ入っていても1としてカウントをしたいです。

なのでこの表の場合、1日(金)の合計数は2、5日(火)の合計数は3、としたいのですが、

関数で簡単にカウントできる方法はないでしょうか。

○▢△の列に入ってる数字は「1」以外が入ることはありません。

Microsoft 365 と Office | Excel | その他 | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

ひまじん 17,185 評価のポイント
2024-11-19T02:35:47+00:00

そういうことでしたか・・・、

『 A、B、C の各グループごとのセル範囲に 1 が入っているセルが一つでもあれば、そのグループとして 1 を取得し、その総和を計算する。』

ということではなく、

『 A、B、C の各グループごとのセル範囲に 1 が入っている日数をグループごとに計算したい。』

ということですよね?。

図2は、C35セル( C35セルから E35セルまでの結合セル)に下記の数式3を入れ、これをコピーし列方向に貼り付けていった結果です。

結合されたセルをコピーし貼り付けていくことで貼り付け先のセルも結合セルとなり、数式のセル範囲も自動的に調整されます。

・数式3

=SUMPRODUCT((((C3:C33=1)+(D3:D33=1)+(E3:E33=1))>0)*1)

尚、スピルが有効になっているバージョンの Excel( Microsoft365 の Excel、Excel2024、Excel2021 など)であれば、下記の数式4でも同様の結果が得られます。

・数式4

=SUM((((C3:C33=1)+(D3:D33=1)+(E3:E33=1))>0)*1)

いずれの数式も一例です**。**

・図2

※各グループごとの「合計日数」を求める行位置を仮に 35行目とし、C列から始めて 3列ごとにセル結合しています。

※図1と同様、動作検証のためデータの一部を変更しています。ご了解ください。

画像

ご参考になれば幸いです。

<追記>

数式3と数式4は下記のように簡略化した書き方も出来ます。

・数式3-1

=SUMPRODUCT(((C3:C33+D3:D33+E3:E33)>0)*1)

・数式4-1

=SUM(((C3:C33+D3:D33+E3:E33)>0)*1)

ただ、応用が利くのは数式3と数式4のほうです。

ご参考まで。

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

質問作成者が受け入れた回答

ひまじん 17,185 評価のポイント
2024-11-16T01:54:41+00:00

こんにちは。

既にご希望通りの結果が得られる数式がご紹介されていますが、ここでは、考え方を少しだけ変えて組んでみた数式もご紹介したいと思います。

・数式1

=MAX(C3:E3)+MAX(F3:H3)+MAX(I3:K3)+MAX(L3:N3)

この数式では、C3:N3 のセル範囲の 3列ごとの最大値を取り出し、その総和を求めています。

各列には『数値の 1しか入らない』という前提なので、こういった書き方も出来ます。

この数式を O3セルに入れ、これをコピーし行方向に必要なだけ( 31日分ならば O33セルまで)貼り付けます。

※コピー・貼り付けについては、慣れておられるのでしたらオートフィルを使ったほうが簡単かと思います。

結果は図1のようになります。( 15日分まで表示 )

・図1

※動作検証のため元のデータを少し変更しています。

画像

尚、A列に日付が表示されていない場合に「合計数」表示も 0 ではなく ""(空白の文字列)としたい場合には、数式1を下記の数式2のように変更してみてください。

・数式2

=IF(A3="","",MAX(C3:E3)+MAX(F3:H3)+MAX(I3:K3)+MAX(L3:N3))

手元の環境( Windows11、Micorosoft365 の Excel )で動作確認しています。

ご参考になれば幸いです。

<訂正>

数式1の説明の中でセル範囲の表記が間違っていましたので、下記のように訂正しました。失礼いたしました。

誤 この数式では、C3:L3 のセル範囲の・・・

正 この数式では、C3:N3 のセル範囲の・・・

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

5 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2024-11-15T07:57:38+00:00

    この応答は自動的に翻訳されています。 その結果、文法上の誤りや奇妙な言い回しが生じる可能性があります。

    こんにちはキーリ、

    マイクロソフト コミュニティをご覧いただき、ありがとうございます。

    要件は、C から N までの 3 列ごとにグループとしてカウントするように要約できます。各行を数える数式を書いてみてください: グループに値が 1 のセルが少なくとも 1 つ含まれている場合は、1 回数えます。

    提供されたスクリーンショットに基づいて、カウントがセルO3から始まると仮定して、次の式を入力します。

    =IF(OR(C3=1,D3=1,E3=1),1,0) + IF(OR(F3=1,G3=1,H3=1),1,0) + IF(OR(I3=1,J3=1,K3=1),1,0) + IF(OR(L3=1,M3=1,N3=1),1,0)
    

    結果として得られる効果は次のとおりです。

    結果を私と共有することを楽しみにしています。

    よろしくお願いいたします

    ジョナサンZ - MSFT |マイクロソフト コミュニティ サポート スペシャリスト

    この回答は役に立ちましたか?

    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません
  2. ひまじん 17,185 評価のポイント
    2024-11-18T12:48:59+00:00

    お役に立てたようで良かったです。

    今回の返信の中では、更に、

    >タテにカウントする場合も同じように利用・・・

    と書かれていますが、これは、

    『同一の表を使い、各グループごとで月初から月末までのセル範囲に 1 が入っているセルが一つでもあったら、そのグループ全体の値として 1 を取得した上で、各グループの値の総和を求めたい』

    といったことでしょうか?。

    そうだとすると、結果はほぼ 4 にしかならないかと思うのですが、それで良いのでしょうか?。

    例えば、グループ内の月初から月末までのセル範囲に 1 が全く入っていない場合に限り、そのグループの値としては空白(参照結果としては 0 )を返すわけですから、数式を使わずとも見た目ですぐに分かるはずですし・・・。

    それに、そういった場合はまず無いのではありませんか?。

    有るとしてもグループを新しく作った場合などに限られるように思うのですが・・・。

    それでも、どうしても同様の結果を得る数式を求めておられるのでしたら、やはり MAX 関数を使ったほうが簡潔で見やすい数式になるかと思います。

    下記は、その数式例です。動作確認済みです。

    =MAX(C3:E33)+MAX(F3:H33)+MAX(I3:K33)+MAX(L3:N33)

    グループ( 3列、31行 )ごとの結果を求め、その総和を出来るだけ簡単な数式で求めたいということでしたら、こういった数式をお勧めしたいと思います。

    もしも、ご希望がそういった値を求めることではないとしたら、結果としてどのような値を求めたいのかを教えていただければと思います。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2024-11-18T02:11:46+00:00

    ご回答ありがとうございます。無事解決出来ました。

    ちなみに、タテにカウントする場合も同じように利用できると思うのですが、30日分MAX関数入力する以外の方法があったりはしないでしょうか?

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません