2017-04-04 8 views
0

データベースで何をすべきかExcelでやろうとしています。私は生データを含むスプレッドシートを持っており、基準に基づいてクエリを実行しようとしています。Excelより大きい値と小さい値および静的な値との比較

A B C D E F 
1 Red up 1 4 dn 5 
2 Blu up 5 9 
3 Yel dn 1 4 
4 Gre dn 5 9 

I E1は、列BおよびF1に見出されるE1及びF1の基準を満たす列Aの値を返したいが等しけれ又はC列の値の間にある次の例テーブル所与D.この例では、「Gre」を返したいと思います。

私はINDEXとMATCH関数で私の髪を引き出しています。私は自分の仕事の一部を手に入れることができますが、トータルソリューションを解決するために何も拡張性がないと感じました。

ありがとうございました!あなたの生データに見出しを追加する気にしない場合は

答えて

2

=IFERROR(INDEX($A$1:$A$4,MATCH(1,INDEX(($B$1:$B$4=$E$1)*($C$1:$C$4<=$F$1)*($D$1:$D$4>=$F$1),),0)),"") 
+0

これはうまくいくようです。ありがとうsktneer – chalk

+0

あなたは歓迎ですチョーク!それがうれしかった。 – sktneer

1

...これを試してみてください。 enter image description here

あなたはこの式を使用することができます。
=DGET($A$1:$D$5,"Field 1",$E$1:$F$2)

A1:D5は、データベースであること。
フィールド1は値を返すフィールドです。
E1:F2が条件(そのフィールドで検索するフィールド名と値)です。 @Vityataで述べたように

https://support.office.com/en-gb/article/DGET-function-455568bf-4eef-45f7-90f0-ec250d00892e

これはOPのために動作しません - GREのではなく、#VALUEエラーを返す値6を探しています。

更新のカップルは、それが機能することを可能にする

式を更新
  • に:=DGET($A$1:$D$5,"Field 1",$E$1:$G$2)
  • テーブルを更新する:
    enter image description here

F2とG2の値であります ="<=" & $H$2および=">=" & $H$2
この例では、次のように計算されます。セルH2に1が入力されたときのYel。

+1

良い公式ですが、私はそれがOPのためにうまくいくとは思っていません - 'C列とD列の値が等しいか等しいと分かりました。 ' – Vityata

+0

良い点 - 質問でそれを忘れました。私は動作させるために更新する予定ですが、それはOPによって与えられた正確なデータ形式から少し離れていきます。 –

0

私は質問が好きなので、私はsktneerの答えに少し精緻化しました。理由は、それは真実を探しているからです(a.k.a.このよう

=MATCH(1; 
          INDEX(($B$1:$B$4=$E$1)*($C$1:$C$4<=$F$1)*($D$1:$D$4>=$F$1););0) 

:以下の式で1)あなたは1つの式でそれをしたい場合は、それがあるべき =INDIRECT(ADDRESSE(I1;1))

enter image description here

は次に間接的に、我々は答えを達成することができますこのように:

=INDIRECT(ADDRESS(
         MATCH(1;INDEX(($B$1:$B$4=$E$1)*($C$1:$C$4<=$F$1)*($D$1:$D$4>=$F$1););0); 
          1)) 
関連する問題