- ベストアンサー
Excel AND関数の使い方
- AND関数を用いて、任意の文字列を含むセルを正しく検索したいがうまくいかない。具体的には、A1セルには「tokyo-gorin」という文字列があり、B1セルには「あばば」という文字列がある場合、=AND(A1<"tokyo",B1="あばば")とした場合、C1セルにFALSEが表示される。しかし、A1セルの文字列を「okyo-gorin」として頭の"t"を削除するとC1セルにはTRUEが表示される。
- Office 2010 PersonalをWindows 7で使用している。質問文章の問題について知っている方、教えていただきたい。
- 質問文章にあるAND関数の使い方について、正しく検索されない問題がある。また、使用しているOfficeのバージョンやOSの情報を示しており、対象読者を絞り込んでいる。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! >任意の文字列を含む・・・ の場合の使い方が間違っていると思います。 C1セルを =AND(COUNTIF(A1,"*tokyo*"),B1="あばば") または =AND(ISNUMBER(FIND("tokyo",A1)),B1="あばば") にしてみてください。 ちなみに、お示しの関数の >A1<"tokyo 部分は A1が tokyo という文字列より小さい! という意味になりますので、 並び替えの考え方と一緒になります。 A1セルがアルファベット「t」より前から始まる文字列であれば すべて「TRUE」となるはずです。 すなわち a~s から始まる文字列であればすべて「TRUE」 t~z で始まる文字列であればすべて「FALSE」となります。 ※ 数字はaより前と判断されます。m(_ _)m
その他の回答 (3)
- bunjii
- ベストアンサー率43% (3589/8249)
>何が何だかわかりません。 理由は簡単です。 tokyo-gorin>tokyo であるからです。 A1セルの文字列のほうが長いので -gorin の分が大きいと判断されます。 okyo-gorin<tokyo であるからAND関数の要素を除いても前者はFALSEで後者がTRUEになります。 先頭文字が判定対象となり以降はなくても同じ結果です。 尚、AND関数は括弧の内の引数が全てTRUEの時TRUEを返しますが、1個でもFALSEがあればFALSEを返します。 論理が分からなくなったときは要素の1つずつ判定してどれが原因になっているかをチェックすると良いでしょう。
お礼
お礼が遅くなって申し訳ありません。 ありがとうございました。
- MackyNo1
- ベストアンサー率53% (1521/2850)
>AND関数を用いて、任意の文字列を含むセルを出したいと考えておりますが、 ある文字列を含むかどうか判定するなら、通常はFIND関数やCOUNTIF関数を使用します。 >=AND(A1<"tokyo",B1="あばば") とした場合、C1はTRUEとなると思うのですが、実際にはFALSEとなります。 上記の数式はA1の文字列が「tokyo」よりも小さく(文字列の大小は文字コードで判断されます)、かつB1セルが「あばば」ならば成立します。 しかし、A1のデータが「tokyo」の後に文字列が続くので、この値のほうが大きいとみなすためFALSEとなるためです。 >ところがA1の"tokyo-gorin"を"okyo-gorin"として頭の"t"を削除するとTRUEとなります。 この場合は、先頭文字が「t」よりも文字コードが若い「o」から始まっているので「小さい」と判断してTRUEが返るわけです。 文字列を含むかどうかを判定する場合は、以下のような数式を利用してください。 =ISNUMBER(FIND("tokyo",A1)) =COUNTIF(A1,"*tokyo*")=1
お礼
お礼が遅くなって申し訳ありません。 どうもありがとうございました。
- asciiz
- ベストアンサー率70% (6826/9706)
実際に、"tokyo-gorin" は、"tokyo" より、大きいです。 ですので、AND()の結果は偽(False)になります。 文字列同士を比較する場合、頭から一文字一文字比較していき、文字コードの大きい方が見つかれば、そちらの方が大きいです。 しかし、途中まで全く等しい場合、さらに文字がある方が、大きいとされます。 実際に "tokyo-gorin" と "tokyo" という文字列を比較したなら、 ↓ "t"="t" "o"="o" "k"="k" "y"="y" "o"="o" "-">"" ←ここで前者が大きいと決定 "g" ←以下は大小判定に利用されない となります。 前者の頭を削った、"okyo-gorin" と "tokyo" を比較しようとしたなら、 ↓ "o"<"t" ←最初の一文字で前者が小さいと決定 "k" ←以下は大小判定に利用されない こうなるので、AND()が真(True)になります。
お礼
お礼が遅くなって申し訳ありません。 異動先で前担当者の引き継ぎがうまくいかなくて、、、 ちゃんと理解しないまま不等号を使ったらうまくいってたのが不味かったです。 ありがとうございました。
補足
お礼が遅くなって申し訳ありません。 あの後急に別店舗に飛ばされてドタバタしていました。 文字列における不等号の使い方が分かってないまま使っていたのが悪かったようですね。 ありがとうございました。