• 締切済み

【エクセル】重複条件にて表から参照する

名前 皮 サイズ 値段 りんご 皮つき 20 100 りんご 皮つき 35 200 りんご 皮つき 50 350 りんご 皮なし 20 120 りんご 皮なし 35 240 りんご 皮なし 50 400 みかん 皮つき 20 150 みかん 皮つき 40 400 みかん 皮なし 20 170 みかん 皮なし 40 450 このような表があり、DGET関数を使い重複条件にて参照していましたが、 サイズが指定してある数値の以上以下の場合にはそれに対応した値段を参照したく 例えば「りんご 皮つき 19」だとすると100、「みかん 皮なし 45」だと450という感じで参照するにはどうしたら良いでしょうか。 よろしくおねがいします。

みんなの回答

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

お示しの表はデータベースとして例えばシート2にあるとします。 シート2のA2セルから下方には果物名が、B2セルから下方には皮つき、皮なしなどがC2セルから下方にはサイズが、D2セルから下方には値段が入力されているとします。 なお、お示しのようにデータが整然と下方に順序良く並んでいるとします。 そこでシート2のF列は作業列としてF2セルには次の式を入力して下方にオートフィルドラッグコピーします。 =IF(A2="","",A2&B2) そこでお求めのデータですが例えばシート1のA2セルから下方には果物名が、B2セルから下方には皮つき、皮なしなどがC2セルから下方にはサイズが、入力されて行くとします。 D2セルから下方にサイズに合った値段を表示させるとしてD2セルには次の式を入力して下方にオートフィルドラッグコピーします。 =IF(C2="","",IF(C2<=INDEX(Sheet2!C:C,MATCH(A2&B2,Sheet2!F:F,0)),INDEX(Sheet2!D:D,MATCH(A2&B2,Sheet2!F:F,0)),IF(C2>=INDEX(Sheet2!C:C,MATCH(A2&B2,Sheet2!F:F,0)+COUNTIF(Sheet2!F:F,A2&B2)-1),INDEX(Sheet2!D:D,MATCH(A2&B2,Sheet2!F:F,0)+COUNTIF(Sheet2!F:F,A2&B2)-1),IF(ABS(C2-INDEX(INDEX(Sheet2!C:C,MATCH(A2&B2,Sheet2!F:F,0)):INDEX(Sheet2!C:C,MATCH(A2&B2,Sheet2!F:F,0)+COUNTIF(Sheet2!F:F,A2&B2)-1),MATCH(C2,INDEX(Sheet2!C:C,MATCH(A2&B2,Sheet2!F:F,0)):INDEX(Sheet2!C:C,MATCH(A2&B2,Sheet2!F:F,0)+COUNTIF(Sheet2!F:F,A2&B2)-1),1)))>=ABS(C2-INDEX(INDEX(Sheet2!C:C,MATCH(A2&B2,Sheet2!F:F,0)):INDEX(Sheet2!C:C,MATCH(A2&B2,Sheet2!F:F,0)+COUNTIF(Sheet2!F:F,A2&B2)-1),MATCH(C2,INDEX(Sheet2!C:C,MATCH(A2&B2,Sheet2!F:F,0)):INDEX(Sheet2!C:C,MATCH(A2&B2,Sheet2!F:F,0)+COUNTIF(Sheet2!F:F,A2&B2)-1),1)+1)),INDEX(Sheet2!D:D,MATCH(C2,INDEX(Sheet2!C:C,MATCH(A2&B2,Sheet2!F:F,0)):INDEX(Sheet2!C:C,MATCH(A2&B2,Sheet2!F:F,0)+COUNTIF(Sheet2!F:F,A2&B2)-1),1)+1+MATCH(A2&B2,Sheet2!F:F,0)-1),INDEX(Sheet2!D:D,MATCH(C2,INDEX(Sheet2!C:C,MATCH(A2&B2,Sheet2!F:F,0)):INDEX(Sheet2!C:C,MATCH(A2&B2,Sheet2!F:F,0)+COUNTIF(Sheet2!F:F,A2&B2)-1),1)+MATCH(A2&B2,Sheet2!F:F,0)-1))))) これでD列にはお望みのデータが表示されるでしょう。

noname#204879
noname#204879
回答No.3

面倒だけど、最終の計算式を簡単にするために、私なら次のようにします。 添付図参照(小さ過ぎて見えなければ、私の回答は無視してください) 貴方が示す「このような表」が左端です。 それを右端の上段の表に書き替えます。 その手順の説明は省略するけど、真ん中の表はその書き替え途中のものです。 緑色のサイズ値はそのセルの上下の値の平均値です。 右端の下段のセル N16 には次の配列数式を入力しています。 {=VLOOKUP(M16,IF((K$2:K$11=K16)*(L$2:L$11=L16),M$2:N$11,""),2)}

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

こんなのはどうでしょう。 添付の図を見てください(ちゃんとみえるかな)。 F列とL:O列を作業列として使います(あとで非表示にしてください)。 L2には =">="&I2 M2には =G2 N2には =H2 O2には ="<="&I2 L5には =DMIN(A1:D11,L4,L1:N2) ←指定サイズ以上で最小のサイズ M5には =DMAX(A1:D11,M4,M1:O2) ←指定サイズ以下で最大のサイズ F2には =IF(AVERAGE(L5:M5)>I2,MIN(L5:M5),MAX(L5:M5)) ←一番近いサイズ 最後にJ2に =DGET(A1:D11,J1,F1:H2)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

『それに対応した』がよくわかりません。 「りんご 皮つき 30」の様にサイズ20と40の中間の時はどうするんでしょう?

emberabo
質問者

補足

説明不足で申し訳ありません。 中間の場合は最寄りのサイズで、最寄りが2種類ある30の時は大きい方の40にしたいです。 宜しくお願いします。

関連するQ&A

  • 複数条件に合致する場合のみセルを参照する

    複数条件に合致する場合のみセルを参照する関数式を探しています。   A B C 1 みかん イ 5 2 りんご ロ 3 3 いちご イ 2 4 みかん ニ 8 5 りんご ホ 6 上記のような表があって別シートに   A B C 1 みかん イ  と入れるとC1に『5』が参照値として表示されるような関数です。 複数の関数を組み合わせれば出来そうな気がするのですがわかりません。 どなたか教えて下さい。 よろしくお願いします。

  • Excel 2つの重複データに重複先セル番地を表示させたい!

    お世話になります。 エクセルで2つの重複しているデータがランダムにがあります。 下記のように表示いたいのですが、良いほうを教えて下さい。 たとえばA1のみかんがA7と重複している時【7】と表示したい ※VBAはわかりません。関数は得意です。  よろしくお願いします。 A  B C 1  7 みかん 2  5 りんご 3    もも 4  6 なし 5  2  りんご 6  4  なし 7  1  みかん 8  9  ぶどう 9  8  ぶどう

  • Excel2010 複数条件の計算方法

    複数の条件に該当する項目の合計を計算したいのですが、関数の作り方が分かりません・・・ 例えば、A列に文字があってB列に数値が入力されている表があったとして、A列にある項目の中から2つ以上に該当する数値の合計を計算する場合、どのような関数にすれば良いのでしょうか? 例えば、A列に果物の名前(りんご、みかん、ぶどう、メロン・・・)があり、B列にその値段が入っていて、「りんご」と「みかん」と「メロン」の値段の合計を算出するような場合、どのような関数になりますか? 条件がひとつであれば、SUMIF関数を使って計算できるかと思いますが、2つ以上の場合、どのようにすれば良いか分からないのです。 Officeのバージョンは2010です。 ネットで検索してもイマイチ分かりませんでした。どなたか簡単に教えて頂けますでしょうか?

  • Excelで重複データの件数ではなく、何番目かを求める方法

    下記のような表があり、A列に入っている値が重複している場合、 B列に件数を求めるにはCOUNTIF関数を使いますが、件数ではなく、 何番目かを求めることはできるのでしょうか。  A列   B列  りんご 1  りんご 2  みかん 1  りんご 3  バナナ 1  みかん 2 すみませんが、ご教授いただけたら幸いです。 宜しくお願い致します。

  • エクセルで別の行に並んだ重複データをチェックしたい

    ネットで色々調べてはみたのですがやり方がいまいち見つからずどなたかお力添えいただけると幸いです 同じ行にならんでいるデータ内で重複するものを見つける関数はわかったのですが 別の行に並んでいるそれぞれのデータで重複するものを見つけるやり方はありますか? 例)      A    B 1  みかん  りんご 2  みかん  ぶどう 3  りんご   もも 上記の場合、A3のりんごとB1のりんごが重複していますがこれを探したいのです ※A1のみかんとA2のみかんは含みません 不慣れな質問で大変恐縮ですが何卒よろしくお願いいたします

  • エクセルの重複データ、必要数を指定して絞る

    エクセルの重複データ、必要数を指定して絞ることは可能ですか。 エクセル2010です。 マクロはよくわからないので、マクロを組まねばならないようでしたらあきらめます。 たとえばある列に (別の列もデータがあります。 この列を基点にしぼるイメージです) りんご りんご りんご りんご りんご りんご りんご りんご バナナ バナナ バナナ バナナ バナナ バナナ みかん みかん みかん みかん みかん みかん みかん みかん みかん みかん と、個数がランダムで同データがあるような場合に りんご りんご りんご りんご りんご バナナ バナナ バナナ バナナ バナナ みかん みかん みかん みかん みかん と5個に絞るということです。 「重複するレコードは無視する」としたときに1つにしぼられますが、 1つでなく、5つに絞るようなイメージです。 そのような指定がなんらかで可能でしょうか。 テキストフィルターをうまく使えばできたりするでしょうか。 よろしくお願い致します。

  • エクセルの表からの検索

    商品名/Kg  3k  4k  5k りんご    800円 900円 1000円 みかん    700  800   900 オレンジ    600  700    800 なし      500   600    700 別シートに作成した上記の様な表を参照して、 A1のセルに商品名のりんご  B1のセルに3キロと入力すると C1のセルに800と表示されるようにしたいのですが、 簡単な関数等ありましたら教えてください。 よろしくお願い致します。

  • エクセルの表の集計について

    エクセルの『集計』や『ピボットテーブル』を使わずに、関数でやる方法があれば教えてください。 1 名前  住所  りんご  みかん 2 山田 東京   1    3 3 鈴木 神奈川  3   8 4 佐藤 埼玉   4    10 5 山田 東京   5    5 6 佐藤 埼玉   6    5 とエクセルに表があるとします。 (7行目以降はデータが追加されるとします。) 別シートに下記のように名前ごとにりんご・みかんの数の合計を表に反映するようにしたいのです。 1 名前 住所  りんご  みかん 2 山田 東京   6   8 3 鈴木 神奈川  3  8 4 佐藤 埼玉   10  15 説明不足のところがありましたら補足いたしますので、お願いいたします。

  • エクセルで表を作成したいのですが、

    エクセルに詳しくないので教えてほしいです。 下記のような表があります。   1 日付    商品   A重量   B重量 2 11月1日  みかん  143.774 56,236 3 11月5日  りんご   144.265 55,000 4 11月9日  みかん  162.472 48,800 5 11月25日  りんご 162.317 49,200 6 11月26日  りんご 143.232 60,800 この表を参照して 1 11/2 11/1 みかん  200 2 11/8 11/9 みかん 211          ・          ・          ・ という具合に、みかんだけを先に抽出し、そのあとりんごだけを続く表にしたいです。 1 11/2  11/1 みかん  A重量(四捨五入)+B重量(1000で割って四捨五入) となっています。 A1のセルは、B1の翌日の日付が入るようにしたいです。 わかりにくい説明かもしれませんが、おわかりの方どうぞよろしくお願いいたします。 

  • EXCELで重複する値の検索

    EXCELで重複する値を検索して、かつその重複した値と同じ行の隣のセルの値を返すということをしたいのですが、どうすればうまくいきますでしょうか。 具体的には下記のようになります。    A    B   C 1 りんご  A市場 2 みかん  C市場 3 りんご  D市場 4 なし   B市場 5 バナナ  A市場 6 りんご  F市場 上のような表があったとして、A列の重複を検索(この場合はりんごが重複)して、重複した場合はB列の値をC列に返すことをしたいんです。 希望する出力は以下のような形です。    A    B    C  1 りんご  A市場  D市場、F市場 2 みかん  C市場 3 りんご  D市場  A市場、F市場 4 なし   B市場 5 バナナ  A市場 6 りんご  F市場  A市場、D市場 よろしくお願いします。

専門家に質問してみよう