二つの条件に合った行のセルの値を取得する関数

このQ&Aのポイント
  • セルの値を取得する関数を使って、二つの条件に合致した行の値を取得する方法を解説します。
  • 条件として、H2に入力された圃場番号とB列の圃場番号が一致する行、およびI2に入力された農薬NOとD列の農薬NOが一致する行を取得します。
  • 取得した行の中から、F列(散布量)の値をJ2に取得します。条件に合致しない行の場合は、J2を空欄にします。重複する圃場番号や農薬NOがある場合でも、組み合わせは重複しないとします。
回答を見る
  • ベストアンサー

二つの条件に合った行のセルの値を取得する関数は

H2に圃場番号を入力して、その値と一致する圃場番号をB列から取得します。 I2に農薬NOを入力して、その値と一致する農薬NOをD列の農薬NOから取得します。 両方の条件が合致した行の値をF列(散布量)の値をから参照して、散布量の値をJ2に取得し、二つの条件に合致しない場合、空欄にしたいです。 尚、B列の圃場番号は重複する番号が登録されている場合もあり、D列の農薬NOも重複する農薬NOが登録されている場合まあります。 しかし同じ圃場が同じ農薬を2度散布することはありません。例えばB列に圃場番号5が3回出てきますが、該当する行のD列の農薬NOは10,15,12と、それぞれ別になっています。 圃場番号5で農薬NOの10が登録された場合、この組み合わせが重複する行は絶対にないとします。 関数だけでこの操作を実現したいのですが、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • SI299792
  • ベストアンサー率48% (715/1479)
回答No.1

カテゴリが「会計ソフト」になっていますか、Excel ですよね。 J2: =SUMIFS(F:F,B:B,H2,D:D,I2) 下へコピペ。 セルの書式設定、ユーザー定義「#」 にすれば、0は見えなくなります。 0はあり得ないと思いますが、0があって空白と区別したいなら J2: =IF(COUNTIFS(B:B,H2,D:D,I2)=0,"",(SUMIFS(F:F,B:B,H2,D:D,I2)))

shibushijuko
質問者

お礼

ありがとうございました。ご提示いただいたSUMIFS関数で解決しました。 Vlookup関数で考えたのですが、うまくできなかったため質問しました。  m( _ _)m

関連するQ&A

  • セルの値が同じ行を条件に従って行削除するマクロ

    A~E列までデータがあり 行数は約30,000行あります。 A列は半角英数字と-で桁数は11桁又は14桁です。 数字のみもあれば数字と英字の組み合わせもあります。 (英字はどこの桁にあるか何個あるかは不規則です) 例 ABCD123456789X 124345678901234 55555-55555 ABC12345DEF678 E列には半角の 1 か 2 しかありません。 A列が同じ値の行を検出して重複している行は1行だけ残して 後は行削除をしたいです。 行削除はE列の値によって判定したいです。 重複行は1つの値に対して何行あるか不明です。 30,000行のうち、重複行を削除すると10,000行くらいになる予定です。 (1)重複行にてE列の値が1だけの場合    どれでもいいので1行残して残りは行削除 (2)重複行にてE列の値が2だけの場合   どれでもいいので1行残して残りは行削除 (3)重複行にてE列の値が1も2もある場合   E列の値が2の行をどれでもいいので1行残して残りは削除 例 (1) 1234567890XXXX-1 1234567890XXXX-1 1234567890XXXX-1 ↓ 1234567890XXXX-1 (2) 123ABCDE901234-2 123ABCDE901234-2 ↓ 123ABCDE901234-2 (3) 12345678901234-1 12345678901234-2 ↓ 12345678901234-2 ABC45678901234-1 ABC45678901234-2 ABC45678901234-1 ABC45678901234-2 ↓ ABC45678901234-2 手作業では5時間かかりましたがミスだらけです。 まだ数ファイル残っており手作業では厳しいのでマクロを 作成したいのですが、どう記述していのかまったく検討が付きません。 どうかよろしくお願いします。

  • エクセルでセルの行番号を検出し、比較したいんですが…。

       A  B  C  D 1   7   9  10  ● 2   8  12  11  ○ 3   6   8  10  ○ 4  14   9   9  ● 5   7  12  10  ○ 6   12   8  12 このようなA列~D列があるとします。 A列~C列は値が、D列には○や●の記号が入るとします。 ここで、D1には、 「A2以降のA列で、C1より大きい値が最初に出る行番号」 と 「B2以降のB列で、C1より大きい値が最初に出る行番号」 を比較したときに、 A列の方が早ければ○、B列の方が早ければ●と表示させたいのですが、 どのようにすればよいでしょうか? (たとえば、D1は、A列では4行目、B列では2行目にC1より大きい 値がでるので、●といった感じです。) 引き続いて、D2は 「A3以降のA列で、C2より大きい値が最初に出る行番号」 と 「B3以降のB列で、C2より大きい値が最初に出る行番号」 を比較… といった感じで進めて行きたいのです。 非常に困っています。 どなたかご教授ください。 よろしくお願いします。

  • Excelにて複数条件を満たす行の特定のセルの値を返す関数

    Excelにて複数条件を満たす行の特定のセルの値を返す関数を作りたいのですが、上手く行きません。 <Sheet1>   A列  B列  C列 1 2008/6/1 ★  320 2 2008/6/1 ☆  300 : : : Sheet2のA1に、「A列が2008/6/1で、B列が☆の場合、C列の値を返す」という関数を入れたいのですが、どうも上手く行きません。 良い式がありましたら教えて下さいm(_ _)m

  • エクセルで別シートの値を取得したいです。

    エクセルで質問があります。 別シートからセル値を取得したいです。 ただ、セル番地は行番号、列番号で指定し、 行、列番号はセルに入力してある値を使いたいです。 例 Aシート(値格納シート) B1セル値=1000 -------------- Bシート(値取得シート) A列=行番号入力 B列=列番号入力 C列=Aシートの取得関数 A2セル値=1 B2セル値=2 C2セル=1000(取得値) C2セルの関数に、A2とB2の値を使って Aシートのセル値を取得したいです。 よろしくお願いします。

  • 条件にあてはまる場合、行挿入+値を移動させるマクロ

    Excel2003、WindowsXPを使用しています。 説明が分かり難いところがあるかもしれませんが、よろしくお願いいたします。 1.C列に値が入っていた場合、下に行を挿入。 2.挿入した行のB列に、C列に入っていた値を移動。 3.D列に値が入っていた場合、さらにその下に行を挿入。 4.挿入した行のB列に、D列に入っていた値を移動。 5.E列に値が入っていた場合、さらにその下に行を挿入。 6.挿入した行のB列に、E列に入っていた値を移動。 というように、C-E列に値が入っていた場合、下に行を挿入し、 挿入行にその値を移動させるマクロを教えてください。 (実行前)    A列     B列  C列  D列  E列   F列 ああああ  AAA  BBB  CCC  DDD  12222 うううう    EEE                   544 くくく     FFF  GGG  VVV        8 すす     TTT   BBB            4300 (実行後)  A列     B列   C列 ああああ  AAA   12222 ああああ  BBB   12222 ああああ  CCC   12222 ああああ  DDD   12222 うううう    EEE    544 くくく     FFF    8 くくく     GGG   8 くくく     VVV    8 すす     TTT    4300 すす     BBB   4300 上記実行後のように、マクロで出来たら…と思っています。 どうぞよろしくお願いいたします。

  • 「自分のセルより1行上の行番号」を求める方法

    初歩的な質問で申し訳ありません。 あるプログラムからデータをExcelに吐き出しています。 SUM関数を使って値の合計を表示したいのですが、 行数が不明なため、SUM関数をうまく作れません。 A列|B列 ────── No1| 13 No2| 21 No3|  8 No4| 40     ~   ~ ────── 計 |SUM(B2 : B?)  ← ★ この★の部分の、「自分のセルより1行上の行番号」を求める方法を教えてください。

  • 行を返す関数

    CSVファイル等で複数行にわたって(約500件程度)データがあります。 ある文字列を含む行を返す関数が知りたいです。 フォーム等からK047B1という文字列が入力された場合、 ・・・・ K047B1,少年A,北海道,・・・ K032D2,少年B,沖縄,・・・ ・・・・ というデータ群のファイルの K047B1の行を返す関数です。 関数が無い場合、簡単な例で回答を頂けると幸いです。 ちなみに データ群の最初の文字列は重複しない番号で、 数字と英語が混じってます。

    • ベストアンサー
    • Perl
  • vlookupの結果があるセルの書式を取得したい

    vlookupの結果があるセルの書式を取得したい =VLOOKUP(検索値,範囲,列番号,検索の型)で値を取ってくることは 出来ますが、その値の入っているセルの書式を取得したい。 Sheet1の セルA1に、検索したい値が入っていて、 セルB2にVLOOKUP関数が入り。 範囲はSheet2のA1:D1000となっていて、 列番号に4と入っていて10行目に 検索値と一致する値が入っていた場合に、D10の値は VLOOKUP関数で持ってこれますが、D10のセル書式を セルB2に反映させたいのですが、どのようにすれば良いでしょうか? VBAでプログラムしないとダメでしょうか?

  • 2つの値が同じという条件で行を消したい。

    下のような表で、1列目、2列目の値がともにダブっている行のみを消したいです。 1   A 1   B 1   B 1   C 2   A 3   C 3   A 3   C でいうと2、3行めの 1   B と 6、8行めの 3   C がダブっているので それを行ごと消して 次のようにしたいのです。 1   A 1   B 1   C 2   A 3   C 3   A ちなみに各行には他の列にもデータがならんでいます (3   A   あ   カ・・・・・・のようになっています)。 また、ダブるのは2行に限らず3行4行にわたるものもあります。 これってけっこう難しいのでしょうか? ぜひアドバイスを。

  • Excel(2000)で行毎にセルをみて、値を返す

    例えば、以下のようなデータがあったとして、各行毎に左から見た結果、最初にデータがあったセルの列の1行のセルの値を各行のG列に返したい。 ______A__B__C__D__E__F__G__ 1行_ア__イ__ウ__エ__オ__カ____ 2行_1__3__5__2__4__1__ア__ 3行_____2__5__1__5__4__イ__ 4行_____________2__8__2__エ__ 5行_____2______2__1__4__イ__ 6行_________5______2______ウ__ G列に結果。 例えば、G3のセルに何らかの関数を入れて、A3~F3を左から見た結果、B3に2というデータがあるので、その列の1行であるB1の値、イをG3に返すといったないようです。 _ は、スペースをとるためのものです。 実際のデータは500行あり、各行の検索する列数は23列あります。 よろしくお願い致します。