web-dev-qa-db-ja.com

列Aで何かを見つけ、Excel 2010でその行のBの値を表示します

基本的に私の問題は、Excelの1つのセルに文字列があるので、その文字列が別の行(1つのセルではなく行全体)に存在するかどうかを確認し、そうであれば同じ行の別のセルの内容を印刷することですしかし、別の列に。

基本的な例を挙げます。

_Title      Answer
Police       15
Ambulance    20
Fire         89
_

次に、「Police」などのタイトル列をスキャンして、Answer(この場合は15)の下の値をセルに入力する必要があります。

タイトル列全体をスキャンする必要があるので、単に_IF(A2="Police";B2;""_と言うことはできません。

私はIF(COUNTIF(A$2:A$100;"Police");を使用してA2からA100の文字列Policeの内容をスキャンし、定数を印刷する方法を知っています(;の後に何かを置くだけですが)定数」は、見つかった行に応じて変化する変数です。 COUNTIFがセル_A44_でポリスを見つけた場合、式に対する答えは_B44_になり、_A62_でポリスを見つけた場合と同じになり、式が表示されるはずです_B62_

これが理にかなっていて、誰かが私を助けることができることを願っています:)

このドキュメントではスクリプトを使用できないため、Excel 2010を使用しており、通常の数式が必要であることに注意してください。

編集:

ここに私がこれまでに持っているものがあります、私が使用しているスプレッドシートは、私が質問で持っている「単純な」例よりはるかに複雑であることに注意してください...

_=IF(ISNUMBER(FIND("RuhrP";F9));LOOKUP(A9;Ruhrpumpen!A$5:A$100;Ruhrpumpen!I$5:I$100);"")
_

これは、_"RuhrP"_が_"RuhrP"_にあるすべての回答で_F9_を示しており、セルインデックスが同じである_RuhrPumpen!I$5:I$100_にあるはずの答えではありません_A9_が見つかったA coloumのそれ。繰り返しになりますが、複雑さを申し訳なく思いますが、Wordの改善方法は考えられません。

この式を提案したことに注意してください

=IF(ISNUMBER(FIND("RuhrP";F9));LOOKUP(A9;Ruhrpumpen!A$5:A$100;Ruhrpumpen!I$5:I$100);"")

.....しかし、ここでLOOKUPは適切ではありません(完全に一致することを前提としているため(LOOKUPはルックアップ範囲のデータもソートする必要はありません)、したがってVLOOKUPまたは_INDEX/MATCH_の方が良いでしょう.... IFERRORを使用してIF関数を回避することもできます。

=IFERROR(VLOOKUP(A9;Ruhrpumpen!A$5:Z$100;9;0);"")

注:VLOOKUPは常に「テーブル配列」の最初の列でルックアップ値(A9)を検索し、「テーブル配列」のn番目の列から値を返します。nはcol_index_numで定義されます。この場合は9

INDEX/MATCHは、ルックアップ列と戻り列を明示的に定義できるため(VLOOKUPの場合はありえないルックアップ列の左側に戻り列を定義できるため)、より柔軟性が高い場合があります。

=IFERROR(INDEX(Ruhrpumpen!I$5:I$100;MATCH(A9;Ruhrpumpen!A$5:A$100;0));"")

INDEX/MATCHを使用すると、異なる列から複数の値をより簡単に返すこともできます。 A9の前に$記号を使用し、検索範囲Ruhrpumpen!A $ 5:A $ 100、つまり.

=IFERROR(INDEX(Ruhrpumpen!I$5:I$100;MATCH($A9;Ruhrpumpen!$A$5:$A$100;0));"")

このバージョンをドラッグして、列I、列J、列Kなどから連続した値を取得できます。

12
barry houdini

私はそのようなデータ設計を考え出しました:

メインシート:列A:ポンプコード(番号)

列B:シート「Ruhrpumpen」の対応する行を示す数式

=ROW(Pump_codes)+MATCH(A2;Ruhrpumpen!$I$5:$I$100;0)

数式には「;」があります「、」の代わりに、ドイツ語表記も使用する必要があります。そうでない場合は、交換してください。

列C:列Bの式によって検出された行の「ルールポンプン」列Aのデータを示す式

=INDIRECT("Ruhrpumpen!A"&$B2)

列D:列Bの式によって検出された行からの「Ruhrpumpen」列Bのデータを示す式:

=INDIRECT("Ruhrpumpen!B"&$B2)

シート 'Ruhrpumpen':

列A:特定のポンプに関するデータ

列B:その他のデータ

列I:ポンプコード。リストの先頭には、メインシートの列Bの数式で使用される定義名「Pump_codes」が含まれています。

スプレッドシートの例: http://www.bumpclub.ee/~jyri_r/Excel/Data_from_other_sheet_by_code_row.xls

1
Jüri Ruut

想定

ソースデータの範囲はA1:B100です。
クエリセルはD1です(ここではPoliceまたはFireを入力します)。
結果セルはE1です

E1の式= VLOOKUP(D1, A1:B100, 2, FALSE)

1
shahkalpesh

Guys MatchまたはHlookupでVlookup/Indexを使用しているときに、ルックアップ値のレプリケーションの問題に直面していることを知っていることは非常に興味深いことです。..最初の項目はloopkup配列で一致します。

例えば.

列Aには、company ....というフィールドがあります。

_Column A                             Column B            Column C

Company_Name                         Value        
Monster                              25000                              
Naukri                               30000  
WNS                                  80000  
American Express                     40000  
Bank of America                      50000  
Alcatel Lucent                       35000  
Google                               75000  
Microsoft                            60000  
Monster                              35000  
Bank of America                      15000 
_

上記のデータセットをルックアップすると、重複が行番号10および11の会社名に表示されます。したがって、vlookupを配置すると、データが最初に取得されます。しかし、以下の式を使用する場合、ルックアップ値を一意にすることができ、紛争や問題に直面することなく簡単にデータを選択できます

C2に式を入力してください.........A2&"_"&COUNTIF(A2:$A$2,A2)..........最初の行項目と行番号10および11の結果は_Monster_1_になります....._Monster_2, Bank of America_2_それぞれ....ここでは、一意の値が設定されているため、任意のデータを簡単に選択できます。

乾杯!!!アニル・ダワン

0
user3228487