• ベストアンサー

エクセルの関数の立て方。

エクセルを勉強していて、以前にこちらで教えていただき大変助かったのですが、その式の仕組みがわからないので、参考書などをみて調べてみたのですが、やはりわからなかったので再度質問させてください。 =(範囲="陽性")*1 という式なのですが、範囲に陽性という言葉があったら1を、なければ0を返すという関数のようなのですが、()と=しか使われておらず、これだけで、この役割をしてくれる理由を教えてください。 あともう一つ! COUNTIFをつかっていて、=COUNTIF(範囲、”>=10000”)で、なぜ””が必要なのですか? ””の役割は日本語や数字以外の文字列を返すときにだけ使うものではないのでしょうか? ↑をみていただければわかると思うのですが、エクセル全くの初心者ですので怒らないでくださいね・・・。

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

  • ベストアンサー
回答No.2

""の意味は、文字列だと言うことです。 =(セル="陽性")*1は、セルが"陽性"の時、1を返し以外のとき0を返します。 countifについても文字列の個数を調べるものですが、 文字列が??以上と言う指定もできるのです。 EXCELのHELPから引用しますが、 COUNTIF(範囲, 検索条件) 検索条件:計算の対象となるセルを定義する条件を、数値、式、または文字列で指定します。 式および文字列を指定する場合は、">32"、"Windows" のように、半角のダブル クォーテーション (") で囲む必要があります。 範囲 A3:A6 の A3 から順に "リンゴ"、"オレンジ"、"バナナ"、"リンゴ" という文字列が入力されている場合です。 COUNTIF(A3:A6,"リンゴ") = 2 次の例は、範囲 B3:B6 の B3 から順に 32、54、75、86 という数値が入力されている場合です。 COUNTIF(B3:B6,">55") = 2 ちなみに、"*文字列*"、*がマスク指定で、中間にある文字列を調べる時に使用します。"文字列*"で先頭の文字列、"文字列*"で最後尾の文字列を調べることになります。

noname#40064
質問者

お礼

ダブル クォーテーションって読むんですか。勉強になります。 わざわざ例まであげていただき、親切にどうもありがとうございます!よくわかりました! ”*文字列”、”*文字列*”などはわかります。 がんばってエクセルをマスターしていきたいと思います。買った参考書には””について解説してないんですよ~!(怒)

その他の回答 (3)

  • macchan1
  • ベストアンサー率38% (52/136)
回答No.4

=(範囲="陽性")*1 上記の式だけでは、数式が成立しないはすです。 一般に、=(A1="陽性")*1のような式であれば、A1が陽性のときはかっこ内はTRUE(数値の1)を返しますので、最後に「*1」で数値化しているわけです。 場合によればこの「*1」は必要ないこともあります。 おそらく、上記の式はセル範囲に「範囲」という名前が付けられていて、かつ配列数式の場合の式と思われます。 >COUNTIFをつかっていて、=COUNTIF(範囲、”>=10000”)で、なぜ””が必要なのですか? 一般に""で囲まれたものはご質問にもありますように文字列を意味します。 COUNTIF関数では、「>」などの条件をつけたい場合は文字列として条件を記載するという約束事になっているとしか言いようがありません(数値やセル参照以外は)。

noname#40064
質問者

お礼

””については大変よくわかりました。どうもありがとうございます。等符号も文字列と判断されるのですね。 =($H$11:$H$1000="陽性")*1です。最初からそう書くべきでした、失礼しました。 よくわかりました。どうもありがとうございました。

  • 134
  • ベストアンサー率27% (162/600)
回答No.3

=(範囲="陽性")*1 は、おそらく配列関数で、前後に{ }というカッコが使われているんじゃないかと思いますけど。 条件判断で trueとfalseという判断をしています。 trueは1 falseは0です。 これは、vlookup文で vlookup(検索値,範囲,列番号,型)で「型」をTrue、falseと1,0と同じ結果となるのと同じです。 ただし、=範囲="陽性" のままですと、true,falseというデータになってしまいますので、「*1」により、数値の形式に変換しています。 Countif文のダブルコーテーション… 「>=」がついた段階で文字列データですね。また、find文やright文などで文字列を調査する場合もありますので、検索値の部分は、文字列のデータを検索するようになっています。

noname#40064
質問者

お礼

trueは1 falseは0なんですか! ならばわかりました。*1を*2にしたら0と2で返されました。 <=も文字列となってしまうのですか。よくわかりました。どうもありがとうございました。

  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.1

範囲="陽性" という等式は、真であればTRUE、偽であればFALSEという値を持ちます(これらを論理値といいます。不等式でも同様です)。EXCELでは、これらを算術演算するとき、TRUEは1、FALSEは0として計算する約束になっています。 ためしに、=TRUE+1 とか、=FALSE-5 とか入力してみてください。 =COUNTIF(範囲、">=10000") これはEXCELの仕様です。こうなっている理由ですが、>=10000だけだと式として成立せず、何の値も示さないので、COUNTIF関数に値を渡すのに困るからだとおもいます。

noname#40064
質問者

補足

=($H$11:$H$1000="陽性")*1がI列に入っています。 どのように=TRUE+1や=FALSE-5を入れればよいのでしょうか?重ねて質問してしまってすいません。

関連するQ&A