2016-05-09 5 views
3

LOOKUPが上から下の列を検索する方法を見つけるのに問題があります。ここに状況があります。私は、Excelのための式を作成して、文章内のハードウェア部分を検索する必要があります。MS Excelルックアップ(上から下へ)

例:

文(A1)

お客様のPCの電源がオンにすることはできません。マザーボードを確認してください。マザーボードに問題があります。マザーボードを交換してください。 PSUに十分な電力がありません。 PSUを交換します。ここで

検索範囲の列(ハードウェア)

  • はPSU
  • はマザーボード

結果範囲カラム(HARDWARE_PART)

  • PSUを交換置き換えるです
  • マザーボード

私が使用する数式は、結果は "マザーボード" になります

LOOKUP(9999;SEARCH(HARDWARE;A1);HARDWARE_PART)

です。 LOOKUPは列を下から上に検索するためです。

私が今やっていることは、別の置換部分を検出できるように、列を上から下に検索することです。

答えて

3

名前の付いた範囲を使用するとよいステップです。動的な名前付き範囲がさらに優れています。しかし、最初の行で開始しないときに正しい相対行番号をINDEX functionに戻そうとすると、混乱が生じて問題が発生します。

=Sheet1!$AA$2:INDEX(Sheet1!$AA:$AA, MATCH("zzz",Sheet1!$AA:$AA)) 
=Sheet1!$AB$2:INDEX(Sheet1!$AB:$AB, MATCH("zzz",Sheet1!$AA:$AA)) 

これは、彼らが2行目の開始以来によって返される行を変更する必要、として式:

私の2つの名前付き範囲(例えば、ハードウェアおよびHARDWARE_PART)はが参照用います。

B1における標準式は、

=IFERROR(INDEX(HARDWARE_PART, AGGREGATE(15, 6, (ROW(HARDWARE)-1)/ISNUMBER(SEARCH(HARDWARE, $A1)), COLUMN(A:A))), "") 

降順の優先順位で、後続のマッチのための権利を埋めます。

motherboard

IFERROR function「ラッパー」ゼロlegth文字列のエラーリターンを代入することにより、非一致で#NUM!のエラーが表示されないようすることができます。

あなたが優先順位を逆にしたい場合は、ため(SMALL functionAGGREGATE¹オプション(LARGE function)を入れ替えます。 AGGREGATE関数を使用することができないExcelのバージョンについて

プレxl2010補遺

、この標準的な非CSE式は、結果を複製します。 B1では、として


=IFERROR(INDEX(HARDWARE_PART, SMALL(INDEX(ROW(HARDWARE)-1+ISERROR(SEARCH(HARDWARE, $A1))*1E+99, ,), COLUMN(A:A))), "") 
を¹AGGREGATE functionは、それは、以前のバージョンでは利用できませんエクセル2010で導入されました。

+0

こんにちは。フィードバックをお寄せいただきありがとうございます。名前のついた範囲をあなたが推奨するように動的に変更します。そして例のおかげで。問題は私がまだMicrosoft Office 2007を使用していることです。したがって、AGGREGATE関数を実装できません。 – NyamO

+0

NyamO、同じ数式のXL2010以前のバージョンを追加しました。 – Jeeped

+0

OMGジープ。どうもありがとうございます。あなたは私を救ってください。本当にそれを感謝します。 – NyamO

関連する問題