• ベストアンサー

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

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

noname#40064
noname#40064

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

  • ベストアンサー
回答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

  • エクセルのcountif関数で

    WindowsXPでEXCEL2003を使っています。 A列に固有名詞が入っており、 A列の中でのダブりチェックをcountif関数を使って、 実行しました。式は =countif($A$1:A7,A1) というような感じです。 ところが、見た目は全く変わらないのに、 (下記の図でいうと、「りんご」) 返ってきた数字は1でした。 ただし、「なし」のように2が返ってくるものもあります。 A列      B列 1 りんご     1 2 りんご     1 3 みかん     1 4 いちご     1 5 もも      1  6 なし      2 7 なし      2 (ずれて見苦しいかもしれませんがお許しを) 不思議に思い、一度エクセルからcsvに変換し、 またエクセルファイルになおして、 チェックしてみましたが、結果は同じ。 if関数を使ってみたらどうなるだろうかと チェックしてみたら今度は A1とA2の「りんご」は同じものである という 結果が返ってきました。 countif関数では別物と判断し、if関数では同じもの と判断する・・・ というのは、一体どういうことなのでしょうか? countif関数をなにか勘違いしているのかもしれませんが、よろしくお願いいたします。

  • エクセルのcountif関数について

    エクセルで下記のような場合、どのような関数になるのでしょうか?? 番号2の行について (1)B列に1~999までの数字が入力されていて (2)かつJ列に「ごはん大」という文字が入力されている (3)ただし「ごはん大」と打ち込んであるせるは「ごはん大 おかず大盛り」など「ごはん大」以外の文字も同一セルに入力されている可能性がある。 このような場合、countif関数を使用するのではないか、ということまでは何となくわかったのですが、(1)、(3)についてよく分からずご質問させていただきました。 ちなみにエクセル2010を使用しています。 どなたかアドバイスよろしくお願いします。

  • エクセルのCOUNTIF関数について

    エクセルのCOUNTIF関数について、というかCOUNTIF関数でよいのかどうかもよく分からないのですが、教えて下さい。 (1)まず、ワークシートのA列の1~100行目までの100マスを範囲として、数値を入力していくときに、仮に同じ数値を入力しようとしても、入力ができないようにしたいのです。 (2)次に、ワークシートのA列とC列のそれぞれ1~100行目までの合計200マスを範囲として、(1)と同じことをしたいのです。(つまりB列はとばして) (1)と(2)のようなことは可能でしょうか? お分かりの方がおられましたら、ぜひよろしくお願いします!

  • エクセル関数について・・教えて頂けますか?

    エクセル関数について質問なのですが、 0O507654のような数字とアルファベットが入っている文字列を 005-0765-4という風に変更したいのですが、 REPLACEやSUBSTITUTE関数を使ってもうまく出来ません。 超初心者で分からない事が多くて申し訳ないのですが、 どの関数を使用し、どのように入力すれば良いのか教えて頂けませんでしょうか? よろしくお願い致します。

  • エクセルの関数について

    初心者です。 例えばエクセルで6桁の数字を含むようにしたい。4桁の場合は頭に0をおくように設定したい。 640394   640394 6228     006228 640393   640393 6203     006203 というふうに変更したいのですがどのようにするればよいでしょうか。ちなみにすべて半角の文字列です。 簡単な関数を使えばできると思うのですがどうでしょうか。

  • EXCELの関数を作りたい!

    EXCELである文字列データが文字列範囲(文字列データがランダムにあるデータ範囲)で存在するか否かをチェックする関数を作りたいのですが? 文字列範囲がランダムなのでLOOKUP関数が使えないと思うのですが。 EXP:東京都という文字列データが都道府県データ(右記文字列がランダムに存在する)

  • Excelの関数にて

    Excelの関数を使用して A列が○で、B列が□のものはいくつあるか? という計算をしたいのですが どの関数を使ってよいのかわかりません。 A列だけなのCountifでよかったのですが 複数になってしまうと どうしたらよいのでしょうか? 教えて下さい。 宜しくお願いします。

  • エクセルでカウント関数について

    エクセルでカウント関数を使用したいのですが、範囲がいっぱいありすぎて出来ません。 離れた3箇所の範囲から数字を拾うにはどの関数を使用したら良いのでしょうか? 例えば、A~Zの1~20に1~150の数字があります。このB列1~20とOPQ列の1~20とZ列の1~20の3箇所の範囲から100がいくつあるか拾いたい場合はどうしたら良いのでしょうか? どなたか知ってる方お願い致します。

  • エクセルの関数を教えてください

    先ほど質問したのですが必要な情報が足りなかったようなので再度質問させてください。 エクセルで範囲内で値もしくは文字列が入っているセルの数を数えたいのですが値、文字列が同じである時はカウントしないようにしたいのですがどのような関数を使えばいいか教えてください。 範囲はC~AXまでで4行目から1行ずつ調べて結果を出していきたいです。 前回の質問でいただいた回答を数値を置き換えて試したのですがうまくいきませんでした。 回答よろしくお願いします。

  • Excel2010でcountif関数について

    countif関数を使って、特定の文字が入力されたセルの数を算出するシートを作っています。検索する文字に"*"(アスタリスク)を指定すると数字以外のセルがすべてカウントされてしまいます。 =countif(範囲,"*") 他の文字列と同じように検索するにはどうしたら良いでしょうか?

専門家に質問してみよう