[[20100923170104]] 『COUNTIFの使い方』(ちい) ページの最後に飛ぶ

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

 

 『COUNTIFの使い方』(ちい)

 こんにちは。いつもお世話になっています。

 今、http://www.excel.studio-kazu.jp/mag2/backnumber/mm20040824.htmlで
 COUNTIFの勉強をしています。

        A        B      C          D
  ┌──────────────────
 1│  商品   │    │  商品   │ 個数
 2│ リンゴ  │    │ リンゴ  │   3 ← これを求める
 3│ オレンジ│    │         │
 4│ リンゴ  │    │         │
 5│ リンゴ  │    │         │

 D2の数を求めるのに、COUNTIF(A2:A5,"リンゴ")となっています。

 もしもA2:A5に「果物」という名前がついていて
 その中にリンゴがいくつあるか、というのは

 D2=SUMPRODUCT((果物=C2)*1)とか
 D2=COUNTIF(果物,"リンゴ")でできることがわかりました。

 じゃあ、C2:C10の間に「果物」の中に含まれる商品(今はリンゴ)が
 いくつあるのか、という式を作ってみたら、

 =COUNTIF(C2:C10,果物)としたら1と正しく答えがでました。

 質問なのですが、例えば、B1からE1まで8/1,8/2,8/3,8/4と日付が入っていて
 この範囲に「業務日」という名前をつけたとして、
 A1:F1に「業務日」に含まれる日が幾つあるか(4つですが)という
 式を果物と同じように作ってみました。

 =COUNTIF(A1:F1,業務日)としたら答えが0なのです。

 どうして業務日の方は正しい答えがでないのですか?

 どうぞ教えてください。よろしくお願いいたします。

 ちい


 こちらが参考になりそうです。 (mitsu)
 
[[20100324150116]] 『配列数式とINDEX関数の使い方を教えて』(おいちゃん)

 mitsuさん、

 お返事をありがとうございます。

 なかなか難しそうですね。

 ゆっくり読んでみます。

 ありがとうございました。

 ちい


 自己削除しました。 (半平太) 

 > =COUNTIF(C2:C10,果物)としたら1と正しく答えがでました。

 質問の前提になっている ↑ の数式、どのセルに入力してます?
 2行目か4行目か5行目のどれかだと思いますけど、違いますか?

 (1)C2:C10のどれかに「オレンジ」を入力して、どうなるか試してみてください。

 (2)「リンゴ」しか入力していない場合でも、3行目か6行目以降に数式を入力して、
   どうなるか試してみてください。
 
 
 > C2:C10の間に「果物」の中に含まれる商品(今はリンゴ)がいくつあるのか

 「1」が正しい答えだということは、C2:C10の個数を数えるんですよね?

 提示例が適切なのかどうかわかりませんけど、「果物」の中に同じ商品(リンゴ)が
 複数あることがポイントになります。

 =SUMPRODUCT((COUNTIF(果物,C2:C10)>0)*1)
 とか
 =SUMPRODUCT(SIGN(COUNTIF(果物,C2:C10)))
  
 (R)


 半平太さま、Rさま、具体的なアドバイスをありがとうございます。

 >質問の前提になっている ↑ の数式、どのセルに入力してます?
 >2行目か4行目か5行目のどれかだと思いますけど、違いますか?
 はい、D2に=COUNTIF(C2:C10,果物)を入れてました。

 >「1」が正しい答えだということは、C2:C10の個数を数えるんですよね?
 そうなのです。

 >(1) C2:C10のどれかに「オレンジ」を入力して、どうなるか試してみてください。

        A        B      C          D
   ┌──────────────────
  1│  商品   │    │  商品   │ 個数
  2│ リンゴ  │    │ リンゴ  │   1←C6にオレンジを入れてみましたが変化ありません
  3│ オレンジ│    │         │
  4│ リンゴ  │    │         │
  5│ リンゴ  │    │         │
  6│      │    │ オレンジ│
  7│      │    │         │
  8│      │    │         │
  9│      │    │         │
 10│      │    │         │

 >(2)「リンゴ」しか入力していない場合でも、3行目か6行目以降に数式を入力して、
   どうなるか試してみてください。

        A        B      C          D
   ┌──────────────────
  1│  商品   │    │  商品   │ 個数
  2│ リンゴ  │    │ リンゴ  │   1 ←=COUNTIF($C$2:$C$10,果物)
  3│ オレンジ│    │         │   0 ←=COUNTIF($C$2:$C$10,果物)
  4│ リンゴ  │    │         │   1 ←=COUNTIF($C$2:$C$10,果物)
  5│ リンゴ  │    │         │   1 ←=COUNTIF($C$2:$C$10,果物)
  6│      │    │         │   0 ←=COUNTIF($C$2:$C$10,果物)
  7│      │    │         │   0 ←=COUNTIF($C$2:$C$10,果物)
  8│      │    │         │   0 ←=COUNTIF($C$2:$C$10,果物)
  9│      │    │         │   0 ←=COUNTIF($C$2:$C$10,果物)
 10│      │    │         │   0 ←=COUNTIF($C$2:$C$10,果物)

 最初は半平太さまからいただいたお返事の意味がわからなくて悩んでいたのですが
 Rさまのお返事を拝見して

 >「果物」の中に同じ商品(リンゴ)が複数あることがポイントになります。

 これが半平太さまのご指摘のことだと気がつきました。

 A2:A5に果物という名前をつけるのではなく、A2:A3に果物という名前を
 つけるべきでした。A2:A5に果物という名前をつけたので、D2から下に
 式をコピーしたら、A2,A4,A5に対応するD2,D4,D5にそれぞれ1がついてしまいました。
 A2:A3に果物をつけたら、当然ですがD2とD3だけにそれぞれ1がつきました。
 範囲の名前の付け方にそんなに大きな違いがあるとは思いませんでした。

 半平太さま、大変申し訳ありませんでした。Rさまよくわかりました。

 どうしてこんなに紛らわしいことを書いてしまったかを説明させてくださいますか。

 実は、これまでご相談してきました表に関連して以下の表があるのですが、

         A        B      C      D      E      F.... AF   AG  AH
   ┌───────────────────────────────────
  1│         │8/1 │ 8/2 │ 8/3 │ 8/4 │    │  8/31 合計 平均
  2│ name1   │数値│ 数値│   │ 数値│    │      数値 AG/出勤日数  
  3│ name2   │    │     │     │     │    │
  4│ name3   │    │     │     │     │    │

 行1に1日から31日まで日付が入っていて、その中で会社の設定した
 「業務日」というのがあって、別シートにその日付のべたデータがあり
 「業務日」という名前がついています。

 AH2にオペレータの一ヶ月の作業数の平均(AG2/出勤日数)を出すために
 出勤日数の計算を考えていました。

 それで、作業者name1が「業務日」に出勤した日数を(作業者によって
 出勤日がまちまちなのです。)
 数えるというのをやっていて、行3(B3:AF3)が「業務日」でかつ行4(B4:AF4)が
 name1の出勤日(出勤日なら行3の下に業務の成果として数値が記載されている)
 という条件で計算を考えていました。とにかく基本から勉強しなくちゃと思って、

 http://www.excel.studio-kazu.jp/mag2/backnumber/mm20040824.htmlで
 リンゴの数え方を見ていて、出勤日数の計算に応用できないかと
 思いつき、自分の中でごっちゃになってしまいました。

 ほんとうにごめんなさい。

 そのあと半平太さまとRさまからいただいた式で行1の業務日の数を
 計算してみましたが、全て同じ答え(業務日が15日です)が出ました。

 =SUMPRODUCT(COUNTIF(B1:AH1,業務日)) ..範囲を変更させていただきました。
 =SUM(INDEX(COUNTIF(B1:AH1:AH,業務日),0)) ..範囲を変更させていただきました。
 =SUM(COUNTIS(B1:AH,業務日)) で Ctrl+Shift+Enter ..範囲を変更させていただきまし た。
 =SUMPRODUCT((COUNTIF(業務日,B1:AH)>0)*1) ..範囲と名前を変更させていただきまし た。
 =SUMPRODUCT(SIGN(COUNTIF(業務日,B1:AH))) ..範囲と名前を変更させていただきました。

 半平太さまが削除されてしまったので、このように
 私が半平太さまのご回答を再現することは失礼になるかとは思いましたが
 お許しください。ご教示いただいた内容をプリントして一日中にらめっこして
 一生懸命考えていたのです。

 最初の質問から離れてしまって大変申し訳ないのですが、お教えいただけますか。

 先週から悩んでいました。出勤日数を出したいのに

 =SUMPRODUCT(COUNTIF(B1:AH3,業務日)*(B2:AH2))とすると

 name1の7月の「業務日」(15日)内に出勤した日数(6日)の
 作業数値の合計になってしまいます。

 出勤日数を突然計算することができないのでまず、

 半平太さまとRさまからいただいた式を使って、

 行3の業務日の計算を
 =SUMPRODUCT(COUNTIF($D$3:$AH$3,業務日) → 15日

 行4の出勤日の計算を(数値の入っているセルの数)
 =SUMPRODUCT(COUNT($B$2:$AH$3) → 6日

 として、二つを合体させて

 =SUMPRODUCT(COUNTIF($D$3:$AH$3,業務日))*(COUNT($B$2:$AH$3))

 としたところ答えは90。つまり、=15X6となってしまいした。

 きっと配列を十分に理解できていないからだと思います。

 半平太さま、Rさま、どうぞご教示いただきますようお願いいたします。

 ちい


 1ヶ月分だとわかりづらいので、1週間分の例で書きますね。

     A   B   C   D   E   F   G   H   I   J
 1       9/1  9/2  9/3  9/4  9/5  9/6  9/7  合計 出勤日数 
 2  Name1      5   3   7              10   2
 3  Name2          4          10       4   1

 ★ 業務日は 9/3 と 9/4

 Name1さんの場合 =COUNT(B2:H2) は「3」だけれど
 9/2は業務日ではないので、出勤日数は「2」になる、ということですか?

 合計値  =SUMPRODUCT((COUNTIF(業務日,$B$1:$H$1)>0)*1,B2:H2) 
 出勤日数 =SUMPRODUCT((COUNTIF(業務日,$B$1:$H$1)>0)*(B2:H2<>"")) 
          =SUMPRODUCT(COUNTIF(業務日,$B$1:$H$1)*(B2:H2<>""))
  

 それと =COUNTIF(C2:C10,果物) の数式の件ですけど
 こちらの書き方がまずかったせいか何か勘違いされているようです。

 その数式は根本的に間違ってますよ。
 名前の範囲を変更すれば(商品の重複をなくせば)解決!という問題ではありませんので。

 > これが半平太さまのご指摘のことだと気がつきました。 

 どんなご指摘だったか覚えていませんが、たぶん違うと思います。

 >「果物」の中に同じ商品(リンゴ)が複数あることがポイントになります。

 ↑ で言いたかったのは「果物」の中に商品の重複がなければ
 =SUMPRODUCT(COUNTIF(C2:C10,果物)) でも =SUMPRODUCT(COUNTIF(果物,C2:C10)) でもいいですけど

 重複があるなら ↓ のようにする必要があると思いますよ、ということです。
 > =SUMPRODUCT((COUNTIF(果物,C2:C10)>0)*1)
 > =SUMPRODUCT(SIGN(COUNTIF(果物,C2:C10)))
 
 ただし「果物」の範囲に空白セルがあり(数式で空白にしているのも含めて)
 かつ C2:C10 に数式で空白にしているセルがある場合は問題が生じますので
 対応が必要になりますけどね。

 こんなこと書いてるうちに気になってきましたけど
 上の出勤日数は「業務日」に日付の重複がなくても
 =SUMPRODUCT(COUNTIF($B$1:$H$1,業務日)*(B2:H2<>"")) ではなく
 =SUMPRODUCT(COUNTIF(業務日,$B$1:$H$1)*(B2:H2<>"")) ですので、念のため。

 (R)


 Rさま、お返事をありがとうございます。

 出勤日数 =SUMPRODUCT((COUNTIF(業務日,$B$1:$H$1)>0)*(B2:H2<>""))

 を使ってできました!!!

 ブランクでセル以外を探す=COUNTにこだわってCOUNT*COUNTになっていました。
 (B2:H2<>"")でよくわかりました。ありがとうございました。

 >それと=COUNTIF(C2:C10,果物)の数式の件ですけどその数式は根本的に間違ってますよ。

 はい、他の方からもこの式の果物の部分は数値でなければいけないので
 間違っているとご指摘をいただきました。
 それで範囲を使う場合に代わりの式を書いてくださったと思います。SUMPRODUCTで。
 範囲だからと言って必ずしもではないけれどCOUNTIFならば大丈夫。
 違っていたらすみません。

 これとは別に、果物にはリンゴが3つあるのだからリンゴが1つというのは
 おかしいとご指摘も頂きました。

 でも、上記のご指摘とRさまの
 >「果物」の中に同じ商品(リンゴ)が複数あることがポイントになります。
 は同じことを指しているのだと思いました。

 昨日は仕事で遅くなり、お返事の内容も混乱していたかもしれません。
 ごめんなさい。

 範囲の中に、重複があったり、文字列があったりすると扱いが違うということは
 まったく気がつかないことでした。今後十分気をつけたいと思います。

 いつも気がつかないところまで配慮して下さってご指導をいただき
 お世話をおかけします。本当に感謝しております。ありがとうございます。

 もう一つの表は、細かいところにまだ問題あるのですが上司にも提出し
 ひと段落しました。今まで教えていただいたことを整理していつでも
 自分で使えるようにしたいと思います。

 これからも分らないことあると思います。今後ともお世話になります。
 どうぞどうぞよろしくお願い申し上げます。

 mitsuさま、半平太さま、Rさま、ありがとうございました。

 ちい

 17:27 一部訂正いたしました。


 > COUNTにこだわって
 
 数値なら、という条件でしたら ISNUMBER を使います。

 =SUMPRODUCT((COUNTIF(業務日,$B$1:$H$1)>0)*ISNUMBER(B2:H2))

 COUNT関数は =COUNT(B2:H2) というように普通に複数のセル範囲を指定できるんですから
 SUMPRODUCT の中に入れたからといって配列にはなりませんよ。

 (R)

 いつもお世話になっております。

 Rさま

 >「果物」の中に同じ商品(リンゴ)が複数あることがポイントになります。

 >↑ で言いたかったのは「果物」の中に商品の重複がなければ
 >=SUMPRODUCT(COUNTIF(C2:C10,果物)) でも =SUMPRODUCT(COUNTIF(果物,C2:C10)) で   
 >もいいですけど

 >重複があるなら ↓ のようにする必要があると思いますよ、ということです。
 > =SUMPRODUCT((COUNTIF(果物,C2:C10)>0)*1)
 > =SUMPRODUCT(SIGN(COUNTIF(果物,C2:C10)))

 =SUMPRODUCT(COUNTIF(果物,C2:C10))の意味は、「C2:C10の間に果物に含まれる
 「リンゴ」という商品があったら、その「リンゴ」商品の総数を出しなさい」という
 意味だから「リンゴ」という重複があれば「リンゴ」の総数を出すのだから、
 重複がなければ当然1個。

 =SUMPRODUCT((COUNTIF(果物,C2:C10)>0)*1)の意味は、「C2:C10の間に果物に含まれる
 商品が一つでもあったら・・・その一個以上ある「商品」が(リンゴだろうと
 オレンジだろうと)幾つあるかを表示しなさい」という意味で、
 重複があっても、重複した商品の総数を数えるわけではないので、範囲に重複があれば
 この式を使うということでしょうか。

 やっとこの意味がわかってきました。

 実は前回のリンゴの件がけっこうショックで、昨日までリンゴ病のように
 なっていました。

 =COUNTIF(C2:C10,果物)をエクセルで実行した時の不可解な結果から
 どうしても先に進めませんでした。

 会社のエクセルの達人という方のところに押しかけて、悩みを話しましたが
 結局、Rさま、半平太さまのとおり、元の式がロジックではないのだから、
 それをどうしてどうして、となやんでも仕方がない、数字が不可解に
 変化するのだから何かが影響していることは想像できるけれど、その解明に
 時間を使っても意味がないと言われました。確かに、そう思います。

 自分のあまりの不明が恥ずかしいのと、自分自身の中で納得ができないことに
 お返事をするのがつらいのとで、これまでお返事ができませんでした。

 いつも時間がかかってすみません。

 =SUMPRODUCT((COUNTIF(業務日,B1:H1)>0)*ISNUMBER(B2:H2))
 =SUMPRODUCT(COUNTIF(業務日,B1:H1)*(B2:H2<>""))

 これからやってみますね。ISNUMBERは数値かどうかをFAULTとTRUEと理論値を
 表すのだから、*1をしなくてもいいのかしら・・・?

 Rさま、いつも切れないでくださってご指導をありがとうございます。

 これにめげずにがんばります・・・と思います。

 よろしくおねがいします。

 >COUNT関数は =COUNT(B2:H2) というように普通に複数のセル範囲を
 >指定できるんですからSUMPRODUCT の中に入れたからといって配列にはなりませんよ。
 これ、私の分っていないところのヒントです!

 ちい


 > 重複があっても、重複した商品の総数を数えるわけではないので、範囲に重複があれば
 > この式を使うということでしょうか。

 そうです、その通りです。
 その通りなんですが、こういうのは作業列を使って考えてみれば
 すんなり理解できると思いますよ。

    A    B   C     D    E
 1  商品      商品
 2  リンゴ     リンゴ   1    3   D2 =(COUNTIF(果物,C2)>0)*1
 3  オレンジ    レモン   0    0   E2 =COUNTIF(果物,C2)
 4  リンゴ     キウイ   0    0   10行目までコピー
 5  リンゴ     オレンジ  1    1
 6          リンゴ   1    3
 7                0    0
 8                0    0
 9                0    0
10                0    0

 =SUM(D2:D10) が求める答え。

 これを作業列を使わずに計算したのが
 ↓ だってことです。
 =SUMPRODUCT((COUNTIF(果物,C2:C10)>0)*1)
 配列の中身は D2:D10 と全く同じ。
  
 
 > =SUMPRODUCT((COUNTIF(業務日,$B$1:$H$1)>0)*ISNUMBER(B2:H2))
 > *1をしなくてもいいのかしら・・・?

 B1:H1の中に「業務日」に含まれる日付は何日あるかというのを
「業務日」に日付の重複があることを考慮すると

 =SUMPRODUCT((COUNTIF(業務日,B1:H1)>0)*1)

 COUNTIF(業務日,B1:H1)>0 は論理値の配列になりますから
 *1 で、TRUEを 1、FALSEを 0 に数値化しています(論理値を四則演算すると数値になる)
 論理値のままだと合計できないからなんですね。

 > =SUMPRODUCT((COUNTIF(業務日,$B$1:$H$1)>0)*ISNUMBER(B2:H2))

 ↑ は (COUNTIF(業務日,$B$1:$H$1)>0)*ISNUMBER(B2:H2) で掛け算してるんですから、
 論理値は数値化されて計算しています。
 これに付け加えて *1 なんかする必要はありません。
 
 
 それと「業務日」に日付の重複があることを考慮するかどうかですけど
 日付は重複しない、間違って同じ日付を入力する可能性も含めて絶対にない! 断じてありえない!!
 ということでもなければ

 =SUMPRODUCT((COUNTIF(業務日,$B$1:$H$1)>0)*(B2:H2<>"")) 
 =SUMPRODUCT((COUNTIF(業務日,$B$1:$H$1)>0)*ISNUMBER(B2:H2))

 としておいた方が無難ですよ(たいした手間でもないし)

 《↓ に続きます!!》

 (R)


 《↑ から続きました!!》上から読んでください。

 > =COUNTIF(C2:C10,果物)をエクセルで実行した時の不可解な結果

 前回のお返事の中で、この数式についてどう納得したのかということを書いておられますよね。
 それを読んで、えっ、そこが着地点?とは思ったんですけど
 まあ出勤日数を求めるのが解決すればいいわけで、
 その数式について言及するのも本筋から離れるような気がして触れずにおいたのです。
(↑「面倒くせえ」というのを取りつくろった言い方)

    A    B    C    D
 1  商品       商品
 2  リンゴ      リンゴ  2
 3  オレンジ     レモン  1
 4           オレンジ
 5           リンゴ

 ★ A2:A3 に「果物」という名前をつけている

 =COUNTIF($C$2:$C$10,果物) または =COUNTIF($C$2:$C$10,$A$2:$A$3) という数式を 
 2行目のセルに入力したら
 =COUNTIF(C2:C10,A2) と同じであり
 3行目のセルにコピーしたら
 =COUNTIF(C2:C10,A3) と同じことなんです。

 要するに D2はリンゴの個数、D3はオレンジの個数になります。
 これを =D2+D3 か =SUM(D2:D3) で合計すれば、一応求めたい個数は出ます。
 ただ、2行目と3行目に入力した場合のみ有効なんてのは
 まっとうな数式とは言えませんよね。

 そういうふうにしたいのなら
 D2に =COUNTIF($C$2:$C$10,A2) と入力して D3にコピーし
 そのふたつのセルを合計すべきです。
 それなら何行目に入力しようが同じ結果になりますからね。

 これは「果物」のデータが文字列だとか数値だとかは関係ありません。
 文字列でも数値でも同じです。

 ちなみに ↓ のように横方向にデータが並んでいる場合

   A   B   C   D   E   F
 1    10/1  10/10
 2
 3    9/30  10/1  10/3 10/10 10/20 

 ★ B1:C1に「業務日」という名前をつけている

 =COUNTIF(B3:F3,業務日) という数式を
 B列のどこかのセルに入力すれば
 =COUNTIF(B3:F3,B1) と同じであり
 C列のどこかのセルに入力すれば
 =COUNTIF(B3:F3,C1) と同じことになります。
 B列とC列に入力した場合のみ有効です。

 繰り返しますが、まっとうな数式ではありませんからね。
 この、特定の行(特定の列)に入力した場合のみ有効という仕様(特性?)を利用すれば、
 こんな素敵なことができるよ!なんて話も聞いたことがありません。
 忘れてください、きれいさっぱりと。
 COUNTIF の検索条件を複数のセル範囲にする場合は
 SUMPRODUCT等を使って配列計算するしかないってことだけわかってればいいんです(キリッ
(大丈夫か、断言してしまって ← チキンハート)

 (R)

 ------------------------------------------------------------------------------

 Rさま、いつもお返事をありがとうございます。

 >そうです、その通りです。

 やった!(^^)!

 D列とE列という作業列の式、すごくわかりやすいです。
 架空で作業列を作って、0も含めて全部SUMで足せばデータの個数が
 でる。

 リンゴとオレンジの間にキウイとレモンを入れてくださったので
 すごくすごく分りやすくなりました。会社では違うところに
 キャベツを入れられました(__)
 やっぱりRさまのご説明がいちばん理解できました。

 作業列でC2,C3,,,,と一つひとつセルを計算するよりも
 C2:C10という複数の範囲を一度に足すために、SUMを
 SUMPRDUCTに置き換えて足せばいいのですね。

 この場合、D列を配列と呼ぶのですね!これも分っていませんでした。

 確かに、業務日には平日業務日と土曜業務日が重複しているので
 SUMPRODUCTを使うことが無難ですね。それに、他の必要に応じて式を使いまわす
 場合にも汎用性があると思いました。

 COUNTIF(業務日,B1:H1)>0)*1で数値になるけれど、
 ISNUMBER(B2:H2)の答えが論理値のままなので、(つまり、B2:H2が数値かどうか聞いて  
 いるのですよね。)

 だから、「数値*論理値」のままなので、このISNUMBERにも*1が必要かと思いました。

 これ、もう一度考えて見ますね。

 悪夢のリンゴの件ですが、「これが着地点か!」は、なんだか理解できないけど
 どこかで落としどころをみつけないといけない!という脅迫感から
 でたお返事だったかもしれません。

 それに、質問が本流からブレブレだったし。これ以上ごねたらご迷惑が
 かかる・・・という。(そのわりにしつこい)

 でも結局、後半の部分までご教示いただいてしまいました。
 もう一度(何度も)よく読んでから(保存してから)
 もう忘れることにいたします。
 会社でも私が「リンゴがオレンジが・・」とブツブツ
 言っているので笑われました。(正直もう電池ぎれです。)

 8月から一つの表のことで皆様からご指導をいただき、とりわけRさまからは
 継続的なご指導をいただきました。

 決してRさまを指名して(失礼なことです)お返事をお願いするということでは
 なかったのですが、最初から私の作成中の表の仕組みを理解して
 いただいきご指導をいただき、Rさまには、「至らない質問者へ回答を
 続ける」忍耐と、私からは、ご回答をいただき、お礼とRさまのご指導への
 再質問を、Rさまはまた返事をという連続になり、ある意味でご負担を
 おかけしてしまいました。

 全て私のいたらなさが原因です。

 でも正直言って感謝しています。ありがとうございます!!!

 この後もまた質問ぜめになったらごめんなさい。
 どうぞ、どうぞよろしくお願いします。

 これは長すぎるので、新しい質問にしたほうがいいのでしょうか。

 Rさま、みなさまに感謝しています。今後ともよろしくお願いいたします。

 ちい


 Rさま、こんにちは!

 =SUMPRODUCT((COUNTIF(業務日,$B$1:$H$1)>0)*ISNUMBER(B2:H2))
 上の式を言い換えると、数値*論理値=数値となるのですね。

 >論理値は数値化されて計算しています。
 >これに付け加えて *1 なんかする必要はありません。

 論理値は何か他の式と掛けたり足したり(四則演算)するだけで数値になるけど、
 =SUMPRODUCT(COUNTIF(果物,C2:C10)>0)など、式が一つしかない場合は
 論理値のままなので*1で1を掛けて
 =SUMPRODUCT((COUNTIF(果物,C2:C10)>0)*1)
 とする。ですね!!

 後半のリンゴですが、

 >=COUNTIF(B3:F3,業務日) という数式を
 >B列のどこかのセルに入力すれば
 >=COUNTIF(B3:F3,B1) と同じであり

 >=COUNTIF($C$2:$C$10,果物) または =COUNTIF($C$2:$C$10,$A$2:$A$3) という数式を 
 >2行目のセルに入力したら
 >=COUNTIF(C2:C10,A2) と同じであり

 >B列とC列に入力した場合のみ有効です。

 詳細な解説をいただいてとてもおかしな考え方をしていたことがよく分りました。

 ほんとうにご迷惑をおかけしました。<(_ _)>

 でも、ありがとうございました。

 これからもどうぞよろしくお願い申し上げます(*^_^*)

 ちい


コメント返信:

[ 一覧(最新更新順) ]


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