• ベストアンサー

Excel、重複セルを1とカウントする

jcb3092で御座います。 標記の件で教えて下さい。 以下の文字列をカウントするのですが f5:f154 前に教えて頂いたこの関数に範囲を置き換えて =INT(SUMPRODUCT(1/SUBSTITUTE(COUNTIF(F5:F154,F5:F154),0,100))) としました。 教えて頂きたいのはこの関数の終わりの部分(セル範囲の後)の 0,100は何を指しているのかで御座います。 これを理解していないと安心できません。 よろしくお願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

対象範囲の中に空白のセルを含んでいた時に、エラーにならない工夫をしていますね。 その工夫をしていないと、空白のセルを含んでいる時に個数ゼロがカウントされるので、ゼロ割になってエラーになります。個数ゼロをSUBSTITUTE関数で100に置き換え、ゼロ割を回避するという仕組みです。 対象範囲(今ならF5:F154)に含まれるセルの個数よりも、たくさんの数字に置き換える必要があります。 アナタが自分で範囲を置き換えて作成したその式では、数が足りていないので間違った計算結果が表示されます。 たとえば =INT(SUMPRODUCT(1/SUBSTITUTE(COUNTIF(F5:F154,F5:F154),0,1000))) としなければいけません。

その他の回答 (1)

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

SUBSTITUTE関数で使用される引数です。   SUBSTITUTE(文字列,検索文字列,置換文字列,置換対象)   ※置換対象は省略可能 こう使います。   =INT(SUMPRODUCT(1/SUBSTITUTE(COUNTIF(F5:F154,F5:F154),0,100))) の中のSUBSTITUTE関数は   SUBSTITUTE(COUNTIF(F5:F154,F5:F154),0,100) の部分です。 COUNTIF関数を省略すると   SUBSTITUTE(x,0,100) こうなります。 こう考えると、COUNTIF関数で得られた結果の0を100に置き換えているわけで…。 てか、なんでそんな面倒な関数になるのか疑問だなあ。 もうちょっと分かりやすい回答は付きませんでした?

jcb3092
質問者

お礼

Cupper-2 様 ありがとう御座いました。 空白セルが入った場合、重複セルをカウントする時 エラーが表示され困っていました。 今後もよろしくお願い申し上げます。

関連するQ&A

  • 重複した項目のカウント(条件がもう一つあります)

    A   あ B   あ A   い B   う C   あ B   い B   あ C   あ A   い ↑のようなセルがあったとします。 これを、左側の項目ごとに、重複を無視して右側の項目の数を数えたいです。 例えば、 Aについては"あ"と"い"の2つだから2、 Bについては"あ"と"い"と"う"で3、 Cについては"あ"だけなので1 という具合です。 補助列を使ったりマクロで数えたりすればできるのですが、 関数のみを使ったやり方はないでしょうか。 ※ある範囲内で重複を無視してカウントするだけなら  =SUMPRODUCT(1/SUBSTITUTE(COUNTIF(範囲,範囲),0,0))  でできました。    これを使って、Aについて、Bについて、Cについての条件も  加えようとしましたが、  やり方がわかりません。

  • EXCELでのカウント

    こんんちは!いつも使っている簡単な関数ならわかるのですが... 範囲→1列(A列やB列) 範囲内で指定の文字が入力されているセルの数をカウントしたい(返したい)んです。 例)B列に「2」「23」「50」「13」「12」と入力されているとしたら   「2」を入力しているセルをカウントしたかったら   「3」と出てくるように... COUNTIF関数だと「2」を指定したら「2」と入力したセルだけカウントされますよね。(例えば上記例だと「1」と帰ってくる。これを「2」を含んでいるセルの数をカウントしたいんです。 教えてください。 宜しくお願いいたします。

  • EXCELでの重複データカウント方法について(過去問読みましたがわかりません)

    いつもお世話になっております。excel97の関数に関してです。 過去問を検索し、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=118918において、 質問:会社名のデータが1万件あります。 その中には、同じ会社名が重複しているものがあります。 そこで、重複しているデータは1つのものとしてカウントし、全部で何件の会社が存在するかカウントする方法はあるでしょうか? 回答:関数でやるとすると。。。。 データが、A1~A10に入っているとします。 =SUMPRODUCT(1/COUNTIF(A1:A10,A1:A10)) とA11に数式を入力します。 これではいかがでしょうか?? 解説 COUNTIF関数でそれぞれの会社の数をカウントし、 SUMPRODUCT関数で配列の積をもとめます。 というのがあり、未熟者の私は理屈はよく分からないまま、この式でやってみたあと実際に数えてみたのですが、いつも正解数より1多くなってしまうのですが、この式の最後に-1を付ければいいのかな? と思ったのですが、いかがでしょうか?

  • EXCEL 重複データのカウントについて

    EXCELにて、データをカウントしたいのですが、 重複しているデータは1件とします。 SUMPRODUCT関数を使えばできると思うのですが、 データが、複数のシートにある場合はどのようにしたらよいでしょうか? いろいろ試してみましたが、うまくいきませんでした。よろしくお願いします。

  • エクセル 重複データのカウント

    初めまして。 初めて質問いたします。 よろしくお願いいたします。 エクセルで、A列に7ケタの数字13万件         B列に同じく7ケタの数字100~2000件         C列にB列にデータがある行まで=COUNTIF($A$2:$A$130000,B2) 上記の状況で、C列の値は1か0しか出ない状態なので、 セルD1に=COUNTIF(B2:B2000,0)と入れてB列にあるけどA列にないデータの 数(重複していないデータ)をカウントしています。 しかしながら、ベースとなっているA列のデータが13万件と多いので、 再計算などに結構時間がかかっているので、どうにかならないかと思いまして 質問させていただきました。 ちなみに、A列のデータは少しずつ増えていきます。 1度B列にあってA列にないデータは、次にB列に違うデータを入れてカウントする際に 新規データとしてA列に追加しています。 なんとか処理が速くなる方法などありましたらご教授下さい。 よろしくお願いいたします。

  • エクセルの条件付きでデータの種類をカウントする関数

    エクセルの条件付きで重複データや空白データをカウントせず、種類数をカウントする関数の書き方を教えてください。 C列の5行目から14行目に「品目」が入力され、D列に「売れた数」が入力されているとします。売れていない場合は「売れた数」は空白。品目等のデータがない行もあります。品目には重複しているものもあります。 ここで、G5セルに「売れた品目の種類数」を表示させる関数をどのように書けばよいか教えてください。 SUMPRODUCTやCOUNTIFまたはMATCH関数を使っていろいろ試してみましたが、うまくいきません。

  • ExcelのSUMPRODUCTで文字の入ったセルをカウントする方法

    Excelの関数SUMPRODUCTを使って、以下のような式で文字の入ったセルを カウントしようとしましたが出来ませんでした。 【式】 =SUMPRODUCT((A!E3:E5000="")*(((A!B3:B5000*1>=U52*1)*(A!B3:B5000*1<=V52*1)))) 【式解説】 =SUMPRODUCT((A!E3:E5000="") ←シート「A」の「E3」から「E5000」の範囲で文字が入っているものをカウント。 *(((A!B3:B5000*1>=U52*1) ←「U52」は当週の開始日。(7月1日) シート「A」の「B3」から「B5000」の範囲でこの日付より大きい日を条件にする。 *(A!B3:B5000*1<=V52*1)))) ←「U52」は当週の終了日。(7月7日) シート「A」の「B3」から「B5000」の範囲でこの日付より小さい日を条件にする。 【やりたい事】 ・シートAのE3からE5000の範囲の列で、文字が入ってるセルをカウントしたい。 ・日付の範囲を7月1日~7月7日(週)に指定したい。 この関数でどこを直せばいいでしょうか? 又、他にこうすればいい等アドバイスがありましたら 宜しくお願い致します。

  • Excelで飛び飛びのセルにある文字をカウントする

    jcb3092と申します、教えて下さい。 Excel2002を使用しています 飛び飛びに離れた場所のセルに入っている特定の文字 例えば"○""×""△"等を指定してカウントする関数がありまし らご教授頂けますようお願い申し上げます。

  • 複数の条件にあったセルをカウントする。

    すみません。 office2007を使用しています。 下記の条件にあったセルをカウントしたいのですが、SUMPRODUCTやCOUNTIFなどを使って試したのですが、うまくいきませんでした。どなたか教えていただけますでしょうか。お願いいたします。 条件1:A列がBlueである。 条件2:B列になんらかの値が入力されている。 条件3:開始日が2009/7/1~2009/10/30の間 上記の条件を満たした、セルをカウントしたい。 A        B        C Product    PO番号     開始日 Red      NNN-00     2009/10/28 Blue               2009/9/22 Red       NNN-01      2009/8/12 Blue                 2009/7/3 Blue      NNN-02      2009/6/5 何卒、よろしくお願いいたします。

  • エクセル関数  重複したものを削除する

    皆さんおお知恵を拝借させてください。 101 102 103 104 105 106 102 103 101 とあったときに 101 2個 102 2個 103 2個 104 1個 105 1個 106 1個 となりますので、コード数としては6個になりますが、このように数えれる関数がないものかとこのサイトで検索していましたら、 SUMPRODUCT(1/COUNTIF($A$1:$A$9,A1:A9)) という関数があることが分かりました。そこで早速こちらの関数を試してみたところ、確かにエクセルに空白のセルがない状態であれば重複数字を数えることなしにカウントできることがわかりました。 しかし、ある事情により私のエクセルデータには空白のセルがあり、冒頭の例でいきますと SUMPRODUCT(1/COUNTIF($A$1:$A$11,A1:A11))   (空白セルが2つあるため) としなければならないのですが、そうすると #DIV/O というエラーがでてしまいます。 どのたか対処方をご存知の方教えていただけないでしょうか? よろしくお願いします。 ちなみに今回記載した三桁のコードは便宜上101~106と、つらなった数字をつかっていますが、実際にはそうはなっていません。

専門家に質問してみよう