• ベストアンサー

【  "<>*" 】及び【 範囲<>"" 】の意味を教えてください

調べる方法がわかりませんのでここでお聞きします。 文字や数値、式などのデータが入力されているセルのうち数式のみのセルを数える関数を教えていただいた時に次の2つの数式を教えていただきました。 =COUNTIF(範囲,"<>*") =SUMPRODUCT((範囲<>"")*1) お蔭様で この式を使って作業は、無事済んだのですが この式を良く理解したいので 再度 ご教示願いたく よろしく御願いします。 1.上の式の【 "<>*" 】の意味 2.下の式の【 (範囲<>"") 】の意味 を教えてください。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

「範囲」の意味は、わかったと思うが、はエクセルのシートのセル範囲に名前をつけて、関数の中で セル範囲の変わりに使うもので、この際は「範囲」という名前だが 同じセル範囲に、「数値」という名前を付ければ、数値で置き換えることになる。 ーーー 前半はA1:A9に 1 2 sf234 s d 3 4 asd1 a12 のような例を作り =COUNTIF(A1:A10,"*")  結果5 =COUNTIF(A1:A10,"<>*") 結果4 後者は補集合を捉えるに当たる式 でセルの値を文字列に変えたり、数値に変えたりして、変動の様子を 見ること。 ーー *はエクセルやプログラムでは、ワイルドカードという名称で呼ばれ、なんでもよいから(内容・長さとも)文字列を示す時に使われる ものです。これが使える関数と使えない関数があり、それは勉強で 調べるか覚えるよりほかない。 ーー ダブルコーテイション””が付いているのは、COUNIF関数では 数値量の条件は不要だが、それ以外の演算子(<>など)が付くと また文字列を条件にする場合は、””で囲むことになっている。 他と不統一のように思うが、覚えて従うよりほかない。 ーー 後者 =SUMPRODUCT((範囲<>"")*1) SUPPRODUCT関数の理解が難しいのだが、わかりましたか。 =SUMPRODUCT((A1:A10<>"")*1)の例で言うと A1からA10までに付いて 上の例で説明すると A1 空白でない A2 空白でない A3 空白でない A4 空白でない A5 空白でない A6 空白でない A7 空白でない A8 空白でない A9 空白でない A10 空白 を判定する。空白でないがTRUE 空白はTRUEという値が返る。 そのTRUEを*1すると(数値の1をかけると、数字文字列に対しても論理値に対しても数値化する)数値の1、FALSEは0になる。 この縦合計(SUMPRODUCTのSUM)すると A1:A9の9つ1なので9となる。

sainokuniob
質問者

お礼

お礼が遅れて申し訳ありません imogasiさんの知識の深さと丁寧な回答 ただただ頭を下げるのみです。 よわい70歳近くの油の切れた頭に 油を差しながら 勉強させていただきます。 今後とも ご指導 よろしく御願いします。 

その他の回答 (4)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.5

>「*」は文字列を表すなんてどこで調べてもわかりませんでした ワイルドカードを知らないのでは? http://www.excel-img.com/database07.html >上の式の【 "<>*" 】の意味 COUNTIF関数の条件は文字列として定義します。 ○○に等しい :COUNTIF(範囲,"=○○") [ただし=は省略可能] ○○を含む  :COUNTIF(範囲,"=*○○*") [ただし=は省略可能] ○○を含まない:COUNTIF(範囲,"<>*○○*") で "<>*" は○がブランクなので"○○"がない状態で**が省略されて*になった状態です。 >下の式の【 (範囲<>"") 】の意味 SUMPRODUCT関数は範囲の積の和を求める関数です。 =SUMPRODUCT((A1:A5<>"")*1) ↓ =SUM((A1<>"")*1,(A2<>"")*1,(A3<>"")*1,(A4<>"")*1,(A5<>"")*1) A1<>""の結果はTRUEかFALSEが返り値ですが*1することで1か0におきかえできます。 結果として1と0の集計になるので条件検索や合計に利用できるのです。

sainokuniob
質問者

お礼

お礼が送れて申し訳ありません 丁寧な回答ありがとうございます 参考にさせていただきます 今後ともよろしく御願いします。

  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.3

 sainokuniobさん、こんにちは。  探求心の深い方とお見受けいたします。#1への補足として..  '*'は、「ワイルドカード文字」の一つでExcel HELPによると「任意の数の文字」を意味しますとあります。詳細は、Excel HELPで「ワイルドカード文字」を検索して下さい。  しかし、Excel HELP のCOUNTIF の「例 2: ワイルドカード文字を使用し、空白の値を処理する COUNTIF 関数の数式」には「値が入力されているセル」と解説(定義)されています。つまり、元々は文字列を意味する記号をCOUNTIFでは、「値が入力されているセル」と再定義しているということになります。  ちなみに"<>*"を上記解説では、丁寧に分解して"<>"&"*"としています。こちらが公式表記なのでしょうけど結果は同じですよね。  疑問に思われる点は基本的にMicrosoft Excel の中だけの約束事なのでExcel HELPがもっとも勉強できる情報源になると思います。その素養としてはプログラミング言語の定義やOSの知識があるかと考えますが、言語の場合、多数ある言語によって定義(例えば、≠の意味の表現方法を<>としたり!=としたり言語によって色々)は異なるので、最初はExcelの世界の定義をものにされたらいかがかと思います。  そうそう、<>は、「比較演算子」で検索して下さい。 ---EOL---

sainokuniob
質問者

お礼

お礼が送れて申し訳ありません 詳細な回答ありがとうございます 参考にさせていただきます 今後ともご指導よろしく御願いします。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

>勉強できるサイト  ⇒以下のURLを参考にして下さい。

参考URL:
http://www2.odn.ne.jp/excel/,http://www.eurus.dti.ne.jp/~yoneyama/
sainokuniob
質問者

お礼

回答ありがとうございます お礼が送れて申し訳ありません 参考にさせていただきます。 今後ともよろしく御願いします

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

>1.上の式の【 "<>*" 】の意味  ⇒「<>」は等しくない、「*」は文字列を表しますので「文字列でない」という条件で、数値、空白セル(但し、数式の空白を除く)の個数となります。 >下の式の【 (範囲<>"") 】の意味  ⇒「<>」は等しくない、「""」は空白を表しますので「空白でない」という条件で、文字列、数値が入力されているセルの個数となります。

sainokuniob
質問者

お礼

早速の回答ありがとうございます 上の式で 「*」は文字列を表すなんてどこで調べてもわかりませんでした なお、「<>*」が文字列でないということはわかるのですが  「<>*」を””で囲むと 「このことを条件として 数値、空白セル(但し、数式の空白を除く)の個数となる 」とは、私の知識ではまだ理解できません  下の式も 「空白でない」という条件まではわかりますが それ以降についてはまだ理解できません。 もうすこし勉強してみたいとおもいます。 厚かましい御願いですが もしご存知でしたら 勉強できるサイトをご紹介いただけたらありがたいのですが 

関連するQ&A