6

基本的に私の問題は、Excelの1つのセルに文字列があることです。次に、その文字列が別の行(1つのセルではなく行全体)に存在するかどうかを確認し、存在する場合は同じ行の別のセルの内容を出力する必要がありますしかし、別の列にあります。

基本的な例を挙げます:

Title      Answer
Police       15
Ambulance    20
Fire         89

ここで、たとえば「警察」のタイトル列をスキャンし、[回答] の下の値 (この場合は 15) をセルに入力する必要があります。

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

文字列PoliceのA2からA100の内容をスキャンするを使用してみIF(COUNTIF(A$2:A$100;"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"F9RuhrPumpen!I$5:I$100AA9

4

4 に答える 4

14

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

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

...しかし、LOOKUPここでは適切ではありません。正確な一致が必要であると想定しているためです (LOOKUP はそれを保証せず、ルックアップ範囲内のデータをソートする必要VLOOKUPINDEX/MATCHあります)。また、IF 関数を回避するために IFERROR を使用します。つまり、

=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 列などから連続した値を取得できます。

于 2012-11-02T13:50:06.723 に答える
1

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

メインシート:A列:ポンプコード(数字)

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

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

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

列 C: 列 B の式で見つかった行からの「Ruhrpumpen」列 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

于 2012-11-02T10:28:04.577 に答える
1

仮定

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

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

于 2012-11-02T08:22:57.767 に答える