4

マイファイル

ワークブック 1 にはラップトップとインベントリ シートが含まれており、インベントリはラップトップの名前のみを取得してラップトップからデータを取得します。

目的

シートから製品名 (10,000 エントリ) を抽出します。

プラン

製品名だけが必要なので、特定のキーワード (コンピューターの仕様) を見つけて、その左側 (製品名) にすべてを移動します。

狙うキーワード

  • セレロン
  • ペンティアム
  • B815
  • E1-1200
  • B820

スプレッドシート データ

  • セル A1 = Compaq CQ58-250SA Celeron B830、Windows

  • セル A2 = HP 650 Pentium B980、15.6 HD AG LED SVA、

  • セル A3 = Asus X401A-WX321H、B815、Windows 8

  • セル A4 = Compaq CQ58-256SA E1-1200、Windows 8 64

  • セル A5 = ASUS、X401A-WX089V、B820、Windows 7

私がこれまでに行ったこと:

=LEFT(ラップトップ!A1,FIND("Celeron",ラップトップ!A1)-1)

私は何をする必要がありますか

=LEFT(ラップトップ!A1,FIND("Celeron"&"Pentium"&"B815,ラップトップ!A1)-1)

4

4 に答える 4

5

果物のリストが含まれD1:D3ている場合は、これを使用できます。

=LEFT(A1,FIND(INDEX(D1:D3,MATCH(1,COUNTIF(A1,"*"&D1:D3&"*"),0)),A1)-1)

CTRL+ SHIFT+を押して、配列数式として入力する必要がありますENTER

于 2013-01-22T15:03:50.417 に答える
3

更新された質問に基づいて、セルごとに1つのキーワードとD1:D5のキーワードのリストを想定して、この式を使用できます

=LEFT(Laptops!A1,LOOKUP(2^15,FIND(D$1:D$5,Laptops!A1))-1)

それ以外の場合は、セルごとに複数のキーワードがある可能性があります......

どのバージョンの Excel を使用していますか? Excel 2010では、このようなAGGREGATE関数を利用できます

=LEFT(A1,AGGREGATE(15,6,FIND(D$1:D$3,A1),1)-1)

ここで、D1:D3 は「フルーツ リスト」です - 必要に応じて展開します

[AGGREGATE 関数の 15 は「SMALL」関数を示し、6 はエラーを無視するため、FIND(D$1:D$3,A1) から最小値を取得し、エラーを無視して、セル内の最初の果物の位置を示します]

これは通常の数式として入力してコピーできます。果物が見つからない場合はエラーになりますが、IFERROR 関数を使用してそれを変更し、テキスト値または A1 の内容全体を返すことができます。

注: FINDは「大文字と小文字を区別する」ため、不要な場合は代わりにSEARCHを使用してください

Excel 2007以降ではIFERRORを使用できるため、この「配列入力」バージョンを使用できます

=LEFT(A1,MIN(IFERROR(FIND(D$1:D$3,A1),""))-1)

于 2013-01-22T15:58:52.103 に答える
2

Pear と Orange の任意のインスタンスを Apple に置き換えてから、これを使用できますSUBSTITUTE(すべて 1 行で記述しますが、読みやすくするために分割します)。

=LEFT(A1,FIND("Apple",SUBSTITUTE(SUBSTITUTE(A1,"Pear","Apple"),"Orange","Apple"))
    -1)

ここで、Pear、Apple、または Orange のインスタンスがない場合は が返されるので、無効な値をチェックするために#Valueを使用して、これも処理しましょう。ISERROR

=IF(ISERROR(LEFT(A1, FIND("Apple",SUBSTITUTE(SUBSTITUTE(A1, "Pear", "Apple"),
    "Orange", "Apple"))-1)),A1,LEFT(A1, FIND("Apple", SUBSTITUTE(SUBSTITUTE(A1, 
    "Pear", "Apple"),"Orange", "Apple"))-1))
于 2013-01-22T14:58:11.893 に答える
-1

私のバージョンは少し短いです。また、配列数式として入力する必要があります。

=MAX(1-ISERR(SEARCH(D1:D3,A1)))

見つかった場合は 1、見つからなかった場合は 0 を返します。そこから取り組んでください。

于 2013-01-22T15:56:34.643 に答える