[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『数式を教えてください』(教えてくん)
いつも勉強させていただいてます。 以下について教えてください。
下のような表があります。
|[A] |[B] |[C] |[D] | [1] |明細|参照データ|チェック|参照元| [2] | あ | a | 1 | a | [3] | い | 1 | 2 | 1 | [4] | う | | 1 | | [5] | え | 2 | 1 | 2 | [6] | お | b | 2 | b |
B2〜B6セルは表示は空白となっていても、B2 = IF(D2<>"",D2,"")のような数式が入力されています。 また、D列は形式は標準で、文字列や数値が入っています。
★ここで、質問です。 作業列を使わず、C列のチェックが「1」、かつ、B列に表示されている参照データが「空白ではない」行数をワークシート関数で算出する場合、どのような数式になりますか? 上記の場合は、2行目と5行目の「2」行となります。
COUNTIFS関数を使うと、見た目が空白であっても数式が入っていると「空白でない」とみなされて、4行目もカウントされて「3」行となってしまうので困っている次第です。 以上、よろしくお願いいたします。
< 使用 Excel:Microsoft365、使用 OS:Windows11 >
D列は数式の結果ではないのなら
=COUNTIFS(C2:C10,1,D2:D10,"<>")
これで「2」になりますけど?
以上 (笑) 2023/03/23(木) 10:57:14
あくまで B列を対象にして、ということなら
=SUM((B2:B10<>"")*(C2:C10=1))
参考まで (笑) 2023/03/23(木) 11:04:46
ごめんなさい。希望の要件を正しくお伝えできていませんでした。
B列とC列を引数にするかたちにしたいです。
よろしくお願いいたします。
(教えてくん) 2023/03/23(木) 11:09:43
=COUNTIFS(C2:C6,1,D2:D6,"<>")
あくまでもB列で調べるならば
=SUMPRODUCT((C2:C6=1)*(B2:B6<>""))
まだ他にもあるでしょうが・・・
(メジロ) 2023/03/23(木) 11:12:54
で、↓ を試した結果はどうなったんですか?
=SUM((B2:B10<>"")*(C2:C10=1))
365ですよね?
以上、確認だけ (笑) 2023/03/23(木) 11:14:46
笑さん、メジロさん
ご回答有難うございます。 正しい結果が表示されました。
あと、質問しておいて何なんですが、試しにChatGPTに同じ質問をしてみました。 すると以下の答えが返ってきました。
=SUMPRODUCT(--(B:B<>""),--(C:C=1))
これも正しい結果が表示されるんですが、この数式内の「--」はどういう意味でしょうか? ちなみに「--」を取ると正しい結果とはなりません。 話がそれて申し訳ありませんが、これについても教えてください。 よろしくお願いいたします。
(教えてくん) 2023/03/23(木) 11:26:51
>この数式内の「--」はどういう意味でしょうか?
その「-」はマイナス符号。 それを2つ重ねることで「1」を掛けるのと同じ結果になります(-1 × -1)
B:B<>"" とか C:C=1 の結果は論理値(TRUE、FALSE)になるので --(B:B<>"") とすることで、TRUE → 1、FALSE → 0 に変換しています。
↓ でも同じだと思います。 =SUMPRODUCT((B:B<>"")*1,(C:C=1)*1) =SUMPRODUCT(N(B:B<>""),N(C:C=1))
参考まで (笑) 2023/03/23(木) 11:44:02
笑さん
解説いただき有難うございます。 理解できました。
アメリカでは「*1」とかにするよりも「--」が主流なのか、はたまたChatGPTの癖なのか。 よく分かりませんが納得です。 有難うございました。
(教えてくん) 2023/03/23(木) 11:50:52
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.