2017-08-08 7 views
1

ExcelではAとBの2つの列があります。 B内のすべての行を検索する必要があります。例えば、列A内の任意のセル、Aが含まれていると:他の列のテキストを含む列内の行を検索する式

apple 
banana 

およびBが含ま:

I like apples 
I like pears 
I like bananas 

そしてIは、列Cに、次の行を参照するであろう。

I like apples 
I like bananas 
0を

私はこれを行うにはExcel式のみを使用したいと思います。前もって感謝します!

注:Aは「エンドウ」のようなものが含まれており、Bは「スペアミント」が含まれている場合は、フレーズの列Cに表示される「私はスペアミントが好きなの」 - 上記は一例

+0

また、私はこの質問とその答えを使用するかもしれない他の人のために私の質問の一般的なを維持することを選んだが、私は必要であれば、それは簡単に答えるようになるだろう仕様を追加することができます。 – Koloktos

+1

いいえ、私たちはそれができないと考えています。私は自分の質問を編集して – Koloktos

+1

https://stackoverflow.com/questions/13229507/check-cell-for-a-specific-letter-or-set-of-lettersに興味があると指定します。 – pnuts

答えて

4

複雑さについてのコメントです2D配列の中間計算を必要とするため、必要な数式の正確さは正しいです。しかし、ここで、それはFWIWです...

を押し CtrlキーC1に次の式を入力しますシフト、その後(詳細は例の図を見てみましょう/コラムCを下に埋めるためにコピー&ペーストを入力します。 ):

C1: 
=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW($1:$99)/ 
    (ISNUMBER(SEARCH(TRANSPOSE("*"& $A$1:$A$4 & "*"), $B$1:$B$99))),ROW(1:1))), "") 

Ctrlキーシフトを入力します。

enter image description here

+0

優秀 - 私はそれが難しいだろうという考えを持っていましたが、それはこの複雑になるとは思わなかった。それは私のためにはうまくいくが、その背後にある論理を理解しようとしている - この例のA列の長さが4なので、 "A $ A4"の部分は? – Koloktos

+1

@Koloktosは正しいです。キーワードの範囲(列A)に空のセルが含まれている場合、式は機能しません。一方、列Bの限界値「99」は、計算時間を短縮するためだけである。式がしていることは、AのキーワードとBの文の間のマッチの「行列」を計算した後、行列の一致したエントリの行を索引付けします(これは 'Row(1:1)'の目的です)次の一致を見つけるために各行で)。 –

関連する問題