[[20190108170849]] 『表内の○×集計』(ルイボス) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『表内の○×集計』(ルイボス)

表として○×表を作り、その中の数を数えたい。
単純な参照ではなく、特定の列で、特定の記号の場合のみ集計。

表は以下の通り。
   A   B    A   B…
   ○   ×   ×   ○
   ×   ○   ×   ○
   ○   ×   ×   ×
   ○   ×   ×   ○

この表から、「Aの列の○の数」を合計したい。
1.集計行やセルの作成はなし。
2. マクロではなく、関数式で完結させる。

大変難しいとは思いますが、これは実現可能でしょうか?

< 使用 Excel:Excel2013、使用 OS:Windows7 >


 	A	B	C	D
 1	A	B	A	B
 2	○	×	×	○
 3	×	○	×	○
 4	○	×	×	×
 5	○	×	×	○

 =SUMPRODUCT((A1:D1="A")*(A2:D5="○"))
 ということですか?
(bi) 2019/01/08(火) 17:27

biさん

これです!ありがとうございます!
使い方は分かり、範囲調整など行えたのですが、
後学のためにSUMPRODUCTを用いた理由というか、なぜ使ったのか教えていただきたいです!
是非お願いします!
(ルイボス) 2019/01/08(火) 17:49


 例のように4列程度なら
 =SUM(COUNTIF(A:A,"○"),COUNTIF(C:C,"○"))
 でもできますが、実際はもっと列数があり作業列を使わないとなるとSUMPRODUCT関数が適切かと
 思いまして。SUMPRODUCTはとても便利な関数ではありますが、多用すると処理が重くなると
 いうデメリットもあります。
(bi) 2019/01/08(火) 18:02

biさん

なるほど。どの程度で重くなるのか、別の関数などと併用するとどの程度重くなるのかについては挙動見つつですね。
私のものだと 35列,15行 程度で1,2箇所で使用しましたが、特に重いとは感じませんでした。
SUMPRODUCTの処理について自分でもある程度調べていきます!
ありがとうございました!
(ルイボス) 2019/01/08(火) 18:42


長い間時間を空けての再質問です。

本スレッド先頭の表で、表内に「○」を含む文字列があった場合( 例:)「○か△」 )
そのセルを"含む"計算の仕方はどのようにすればよいでしょうか?

sumproductを使用してみようと試みましたが、試算と結果が合いません。
(ルイボス) 2019/01/29(火) 17:26


AとかBを気にしないなら、「=COUNTIF(A:D,"○")」のようにするだけでしょうか? なお、速さを求めるなら、行を省略せずに「A2:D999」のように範囲指定しましょう。

あと、"○"(記号) は "〇"(漢数字) と似ているので、注意。 両方数えてみると、元の表が統一されているかどうか判ります。
(???) 2019/01/29(火) 17:37


 ○を含む文字列だから、検索条件"*○*"じゃないですかね
(稲葉) 2019/01/29(火) 17:57

 質問は ↓ の式を「○を含む」に変更するにはどうすればいいか、ということ?
 >=SUMPRODUCT((A1:D1="A")*(A2:D5="○"))

 =SUMPRODUCT((A1:D1="A")*ISNUMBER(FIND("○",A2:D5)))

 こういうこと?
(笑) 2019/01/29(火) 18:16

>???さん
AとかBを判別する必要は相変わらず存在している状態です。
ですので、biさんの式に、COUNTIFを使うと掛け算として処理されてしまい困っていました。

>稲葉さん
>笑さん

ありがとうございます。
両方のやり方で試してみます!

含むっていう条件でもいくつもやり方があるとは…
明日組み込んでみます!
(ルイボス) 2019/01/29(火) 19:08


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.