行に存在する必要がある2つの値を検索し、異なる列から値を返す


1

列A、B、およびCに値があります。

1-1-2

1-2-3

2-2-4

3-4-1

2-3-5

別の列(これが列Eにあると仮定します):

1

1

2

3

4

注:すべての列は行1から始まります。

列Aの範囲内のE1の値と列Bの範囲内のE2の値を含む行を検索したい。行に両方の値が含まれる場合、列Cの値を返す

列Fに次の関数を作成しました。

= IF(AND(E1 = $ A $ 1:$ A $ 4、E2 = $ B $ 1:$ B $ 4)、$ C $ 1:$ C $ 4)

私の基準に一致する値が同じ行にある場合にのみ機能し、そうでない場合は偽になります。問題を詳しく説明する例:

EFABC

1 2 ---------------------> 1 1 2:E1 = A1およびE2 = B1-F1は= 2になるため

1 3 ---------------------> 1 2 3:E2 = A2およびE3 = B2-F2は= 3 2 false ------ -----------> 2 2 4:E3 = A3であるがE4!= B3であるため-F3はfalse(5でなければならない)

なにか提案を?


私はあなたの質問にとても混乱しています。Cxの値を与えるように聞こえますが、xはAxとBx = E1とE2の行であり、Bのいずれかの行でE2が見つかった場合に動作させたいと言います。これらの値を持つ特定の行を確認するか、それらがAとBにあるかどうかを確認するだけですか?ある場合、Cのどの行を返しますか?A列ですか、B列ですか?
レインベルナルド

また、各E行をそれぞれのAおよびB行と比較しようとしていますか?IE、E1およびE2-A1およびB1、E2およびE3-A2およびB2、E3およびE4-A3およびB3、または各E行を各AおよびB行と比較しようとしていますか?それとも、E行から始まる各E行から各AおよびB行へ?あなたが何を助けたいかについて、もっと明確な説明が本当に必要です。この関数のポイントが何であるか(最終的な目標は何で、なぜか)を説明することも、それを解決するのに役立つかもしれません。
レインベルナルド

@Layne考えは、ExとE(x + 1)の値を含む行を検索し、(同じ行から)Cの対応する値を返すことです。E1 = 2およびE2 = 3と言います。目標は、E1 = ArとE2 = Brの両方の値を含む行(r)が見つかるまですべての行を検索し、Crの値を返すことです。私はそれが今明確であることを望みます。
マヤ

アイデアの例:imgur.com/a/ryfgDv9これは、列のセル間に依存関係があるためです。列の各セルは、次のセルにリンクされています(列Eを参照)。また、これらすべての依存関係の理由を含む別の表があります。したがって、1分ごとにテーブル間をジャンプするのではなく、サブリスト(E)内のすべてのセル間の依存関係の理由を返す関数を探しています。
マヤ

ちなみに、私がつまずいたのは、のように単一の行を意味するのか、のように(Ax,Bx) = (E1,E2)複数の行を意味するのかわからなかったことです(Ax,By) = (E1,E2)。「条件に一致する値が同じ行にある場合にのみ機能し、そうでない場合はfalseになりました」と言ったとき、複数の行を意味するかもしれないと思ったので、どの行(xまたはy)に戻るかについて混乱しました。これで、最初のE列と同じ行で条件が一致した場合にのみ一致することを意味することがわかりました。
レインベルナルド

回答:


0

これを試してみてください:

=INDEX(C:C,MATCH(1,(E1=A:A)*(E2=B:B),0))

残念ながら、これはexceljet.netのこの優れた記事から引用されているため、信用できません。

誤植を修正した(最も)関連する部分:

この式の仕組み:

通常、INDEX MATCH数式はMATCHセットで構成され、1列の範囲を調べて、指定された条件に基づいて一致を提供します。ヘルパー列または式自体で値を連結しないと、複数の基準を提供する方法がありません。

この式は、3つの基準すべてに一致する行を表すブールロジックを使用して1と0の配列を作成し、MATCHを使用して最初に見つかった1と一致することにより、この制限を回避します。

1と0の一時的な配列は、次のスニペットに基づいています。

(H5=B5:B11)*(H6=C5:C11)*(H7=D5:D11)

ここでは、アイテムH5をすべてのアイテムと比較し、H6のサイズをすべてのサイズと比較し、H7の色をすべての色と比較します。初期結果は次のようになります。

{TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;TRUE}*{FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE}*{TRUE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE}

乗算演算は、TRUE FALSE値を1と0に変換します。

{1;1;1;0;0;0;1}*{0;0;1;0;0;1;0}*{1;0;1;0;0;0;1}

最終結果は次のようになります。

{0;0;1;0;0;0;0}

ルックアップ配列としてMATCHに入ります:

MATCH(1,{0;0;1;0;0;0;0})

MATCHは3を返し、式全体が標準のINDEX MATCH式に要約されます

=INDEX(E5:E11,3)

最終結果は$ 17.00です。


完璧です。できます!。この式でctrl + shift + enterを押すのと同じ問題を誰にでも簡単に言及します。
マヤ

0

次の配列式を使用できます。

{=IFERROR(INDEX($C$1:$C$5,SMALL(IF(($A$1:$A$5=E1)*($B$1:$B$5=E2),ROW($1:$5)-ROW($1:$1)),ROW($A1))),"")}

NB

  • で数式を終了しCtrl+Shift+Enterます。
  • 必要に応じて、数式内のセル参照を調整します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.