• ベストアンサー

エクセルの関数について

選択範囲内にA文字列が2つある時またはAが1つ、Bが1つある時はtrue,ないときはfalse これを表示するにはどのようにすればよいですか?

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.3

結果が大文字のTRUEまたはFALSEのときは下記の数式で良い =OR(COUNTIF(A:A,"A*")=2,AND(COUNTIF(A:A,"A*")=1,COUNTIF(A:A,"B*")=1)) 結果が小文字のtrueまたはfalseに拘るときはLOWER関数で変換すれば良いでしょう。 =LOWER(OR(COUNTIF(A:A,"A*")=2,AND(COUNTIF(A:A,"A*")=1,COUNTIF(A:A,"B*")=1)))

Boushi-yokomiti
質問者

お礼

これで提案してみました

その他の回答 (3)

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

下記を明記したないのは質問として、あいまいで不十分と思う。 >選択範囲内に ある列でその列だけのセル範囲だけのデータ(複数列でない) ある行でその行だけのセル範囲だけのデータ(複数行でない) と考えてよいのか? 既に出ている回答は、これを前提のようだ。 ーー  複数列のセル範囲内に、ということであれば、VBAでユーザー関数を使わざるを得ないかも。 すぐ思い付く、COUNTIF関数では、複数列(行)のデータを対象にできないようだ。 ーー  コンピュターがらみの問題は、細心の注意を払って表現すること。 勉強においても、少し拡張したらとか、少し条件を変えたら、どうなるか、も勉強する癖を付けると、上達すると思う。1つのものが、複数になると、意外に難しくなる問題はたくさんある。

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.2

標準モジュールに Function MRng() As String Application.Volatile MRng = Selection.Address End Function として 表示するセルに =OR(COUNTIF(INDIRECT(mrng()),"A")>=2,SUMPRODUCT((INDIRECT(mrng())="A")+(INDIRECT(mrng())="B"))=2) 入力したときに循環参照のメッセージが出ますが無視してください。 あとは、セルを選択してF9を押すとTRUEもしくはFALSEが出ます。 「2つある時」を「2つ以上」として考えています。

  • okwtun
  • ベストアンサー率14% (2/14)
回答No.1

検索対象範囲はA列だとして =IF(OR(AND(COUNTIF(A:A,"A文字列")=1,COUNTIF(A:A,"B文字列")=1),COUNTIF(A:A,"A文字列")=2),"true","false") で表示できます。

関連するQ&A

  • エクセルでこんな関数は?

    A2:B30に表1があります。 使用者がこのシートに入力するさまざまな条件により、A列がTRUEかFALSEになります。 表1ではA列がTRUEのとき、B列に文字列が表示されるようにB列に式が入れてあります。 A列がすべてTRUEになることはありません。したがってB列の文字列の表示は飛び飛びというか歯抜けのような表になっています。 このB列に表示された文字列を、表2(別シート)に上から歯抜けが無いように2行目以降に順番で表示させたいのです。 考えたのはどこかのセルに =B2&B3&B4&~略~&B30 として文字列をまとめ、(文字列の区切りがわかるように、それぞれの文字列の頭に※印をつけておく)、さらにこれを※印を目標に分割する関数はないか?ということなのですがわかりません。 あるいは他の方法でもかまいません。ただし、表1をおもてに出したくないので表1をソートするやりかたは使えません。 どうかお教えください。お願いします。

  • エクセルについて(関数)

    A列に日付を入力することによって、B列に1から3の数字を表示するようにしています。 B列の関数は「=IF(B3>=2008/4/1,(MOD(B3-"2008/4/1",3)+1))」です。 A列未入力の時に「FALSE」の文字が表示されてしまいます。 今まで皆様に教えていただいたものを応用して、やってみましたが、うまくいきません。 A列未入力時に、何も表示しなくするにはどうしたら良いのでしょうか。 よろしくお願いします。 いつも、ありがとうございます。

  • エクセル 関数によるデータの比較について

    エクセルで、文字列の比較の行い方を教えてください。 (1)A列のA1~A100まで文字列を貼り付けます。 (2)C列のA1~A100までにも文字列を貼り付けます。 ここで、A1の文字列がC1~C100までの どこかにあれば B1がTRUE どこにもなければ B1はFALSE となるような比較を行いたいのです。 B1~B100は、どのような関数を使えば良いのでしょうか? ちなみにEXCELは2000です。

  • エクセルの関数でワイルドカードを使いたいのですが・・・

    A列3行目から100行目までのセルで文字列○を含むものの合計は =COUNTIF(A3:A100,"*○*")で求めることが出来ますね。 同様にB列にも文字列○を含むセルをカウントする場合、 =COUNTIF(B3:B100,"*○*")で求められます。 では同じ行で、A列B列共に○を含むものを集計しようとして、C列に =IF(AND(A3="*○*",B3="*○*"),TRUE)とし、TRUEを合計しようとしたところすべてFALSEになってしまいました。 なぜワイルドカード(*)が使える場合と使えない場合があるのでしょうか? またどうやれば同じ行でA列B列共に○を含むものを集計できるのでしょうか?

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

    よわい70歳弱のもうろくジジーです 教えてください 郵便番号付き住所とついてない住所の列から郵便番号を取りだす式を調べているうちに次のような式が見つかりました。 =IF(ISNUMBER(LEFT(A1,1)*1),LEFT(A1,8),"") このうち、 ISNUMBER(LEFT(A1,1)*1)の意味を教えてください。 ISNUMBER関数は、対象の文字列が数値の場合にTRUEを返し、それ以外の時はFALSEを返すと言うことまではわかったのですが 左に数値?(郵便番号は数値か?)を含むセルから数値を判定する時に 引数として「LEFT(A1,1)*1」すなわち「A1セルの左から1文字」に「1」を乗じると「TRUE」を返し、乗じない場合「FALSE」を返すのかを教えてください。 説明不十分の場合補足しますよろしく御願いします

  • excelで文字列を検索する関数を教えてください。

    いつもお世話になります。 エクセルの関数で、シートAのセルA1に入っている文字列をシートBのC列から探し出し、同じ文字列があればTrueをなければFalseを返す関数を教えてください。 わからないながらも色々調べてみたのですが、検索にはVLOOKUPがよく使われているようですが、シートBのC列は、データの並べ替えができないので、VLOOKUPは、使えないのです。 よろしくお願いします。

  • excel AND関数の使い方

    いつもお世話になっております。 よろしくお願いいたします。 AND関数を用いて、任意の文字列を含むセルを出したいと考えておりますが、 文字列がこちらの思うように正しく検索されません。 A1          B1         C1 tokyo-gorin    あばば      =AND(A1<"tokyo",B1="あばば") とした場合、C1はTRUEとなると思うのですが、実際にはFALSEとなります。 ところがA1の"tokyo-gorin"を"okyo-gorin"として頭の"t"を削除するとTRUEとなります。 何が何だかわかりません。 混乱しております。 Office 2010 Personal をWindows 7で使用しております。 ご存知の方、ご教示頂ければと思います。 よろしくお願いいたします。

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

    エクセルの検索関数について、以下のことで教えてください。 以下のような甲~丁製品データが並んでいます。B列にはチェックボックスを配置し、例えば「丙社製品」を選ぶ場合にB3にあるチェックボックスにチェックしてA3セルが「TRUE」となるようにセットされています(チェックしたチェックボックスは■で表現しています)。チェックされる(TRUEとなる)製品は一つだけです。 <シート名:製品リスト> A B C 1 FALSE □ 甲社製品 2 FALSE □ 乙社製品 3 TRUE ■ 丙社製品 4 FALSE □ 丁社製品 そこで、『本シート内A1~A4中の「TRUE」に該当する製品名(C列の何れか)を拾って』別シートのあるセルに「○社製品」と掲載したいのです。 IF関数でも可能なのですが、製品が7つ以上の場合には使えません。VLOOKUP関数をやってみましたが、A列の「TRUE」「FALSE」がランダムになる為、「昇順」とならず、エラーが出てしまいます。 単純なことなのかもしれませんが、壁に当たっています。 どなたか分かる方がいましたら教えてください。

  • Excelの文字列検索関数について

    Excel2007で、あるセルに入っている英単語が、別のセル範囲(複数セル)に入っている英文の中にあるかどうか、を調べたいのですが、関数を使って実現できるでしょうか? たとえば、 A1に"This is a pen." A2に"That is a desk" という英文があり、 B1に"bat", B2に"pen"を入れたとします。 この場合、A1~A2に"bat"は存在しないのでC1には"FALSE"が、 A1~A2に"pen"は存在するのでC2には"TRUE"が自動的に入るようにしたいのです。 (TRUE - FALSE でなくても、数字などでもかまいません) FIND関数は単一セルの中の文字列しか検索できないし、 MATCH関数はセル内容が同一でないと結果が出ないのでそのままでは使えません。 何かいい方法はないでしょうか。

  • エクセル 関数を教えて下さい。

    ちょっと複雑なのですが、こういう場合の関数の式はどうすれば良いか解る方がおりましたら教えて頂きたいのですが、宜しくお願い致します。 列AではAまたはBを選択し、列Bでは列AのA,Bそれぞれにa,b,c,d,eのいずれかを選択したときに、列Cに列A・列Bで選択したのもに当てはまる記号・数字を表示させるといった関数なのですが、何度挑戦しても引数が限界を超えている等になり出来ません。 もしかすると、根本的に間違っているかもしれません。ちなみにIFを使っていました。 列A  列B  列C A     a     × A     b     2.3.4 A     c     2.3.4 A     d     1.3.4 A     e     2.3.4 B     a     × B     b     2.3.4.10.11.12 B     c     2.3.4.10.11.12 B     d     1.3.4.9.11.12 B     e     2.3.4 列A・列Bを選択すると、列Cに上記の記号・数字を自動表示させたいです。 以上、宜しくお願い致します。

専門家に質問してみよう