Excelの表で検索値が含まれるしきいを知りたい

このQ&Aのポイント
  • Excelの表で検索値が含まれるしきいを知りたいという質問に対して、条件と検索値を指定して該当するしきいを求める方法を説明します。
  • 具体的には、条件として1月から3月までのしきいA、しきいB、しきいCが与えられ、検索値を入力すると、該当するしきいを表示するセルに値が自動入力されます。
  • この方法はマクロを使用せずにシンプルな関数で実現できます。上記の表の例を参考にしきいの計算方法を説明します。
回答を見る
  • ベストアンサー

Excelの表で検索値が含まれるしきいを知りたい

条件によってしきい値の異なるっている表があります。 条件と検索値を指定して、検索値はどのしきいに当てはまるのかを求め、 結果をセルへ入力したいと思います。 条件 |しきいA|しきいB|しきいC| 1月 | 0~10 | 11~20 | 21~  | 2月 | 0~20 | 21~40 | 41~  | 3月 | 0~30 | 31~60 | 61~  | 条件が「2月」で、検索値が「30」であれば しきいは「B」になります。 条件・検索値を指定したら、セルに自動で しきいが入力されるようにしたいです。 (この場合は「B」) また、実際の表の入力は 条件 |しきいA|しきいB|しきいC| 1月 |  0  |  11  |  21  | 2月 |  0  |  21  |  41  | 3月 |  0  |  31  |  61  | のように、1つのセルに対して1つの数値を入力しています。 マクロは使わず、できるだけシンプルな関数で計算できたらと思います。 すごく簡単なことかもしれませんが方法がわかりません。 御教授よろしくお願いいたします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

閾値の条件はA~Cの3つでよいですか? G1に「2月」などの月、H1に「30」などの検索値があるとき、以下の式で「しきいA」「しきいB」「しきいC」のいずれかの値が求められます。 =INDEX(1:1,MATCH(H1,OFFSET($A$1,MATCH(G1,A:A,0)-1,0,1,4),1)) もし閾値がもっと多数あるなら式を見直してください

tsurunoko
質問者

お礼

ご回答ありがとうございます。 計算成功しました。 教えていただいたことを応用して、もう少し単純化させます。 (1)1行目「しきいA」「しきいB」「しきいC」(B1:D1)に  「ランク」という名前を定義付ける。 (2)A列「1月」「2月」「3月」(A2:A4)に  「月」という名前を定義付ける。 (3)=INDEX(ランク,,MATCH(H1,OFFSET(ランク,MATCH(G1,月,0),0),1)) 人が目で見て判断すれば簡単なことでも 計算で出すとなると少し複雑になってしまいますね。 でも今回はすっきりと計算できました。 ありがとうございました。

関連するQ&A

  • エクセル 検索

    Microsoft Excel 2007を使用しています。 条件を選んでマッチするデーターを表示する方法をお尋ねします。 A列、A1に「1」以下セルA10に「10」までの数字が昇順で入力されています。 セルB1からセルB10まで果物の名前が入力されています。名前の重複はありません。 セルC1に果物の名前を入力したらセルD1に関数を用いてそれに対応するA列の数値が表示されるようにできませんでしょうか。 エクセルのヘルプを見ましたが、旨く当てはまる関数を探し出せませんでした。 宜しくお願い致します。 例)  セルA5に「5」という数値があり、B5に「柿」が入力されている。 セルC1に「柿」と入力すると、セルD1に「5」が表示される。

  • エクセルの表計算で、検索値が含まれる列を検索後、同じ列の違う行にある数

    エクセルの表計算で、検索値が含まれる列を検索後、同じ列の違う行にある数値を返す場合はどのようにすればいいのでしょうか? ※下表を例としますと、検索値 150 が含まれる1行目のC列を検出後、同じ列の2行目に入力されている 4300 を返す場合の関数式を教えてください。     A      B         C        D 1   1~50  51~100   101~250   251~500 2   5000    4500      4300     4000

  • EXCELでマクロを使った検索・一覧抽出の方法を教えてください。

    社内文章の表を作成しているのですが、あまりにもデータ量が多く、関数での算出が難しくなってきたので、 マクロを導入したく思っているのですが、検索しても当てはまるものが無く、困っています。。。  | A  | B  | C  | D  | E  | F  | G  | H  | I  | J  | K  | 1|名称1|名称2|数量 |種類1|数量1|種類2|数量2|種類3|数量3|条件1|条件2|・・・ 2|    |    |    |    |    |    |    |    |    | (1) | (1) |・・・ 3|*****|*****|*****|***** |***** |*****|*****|*****|*****| (2)  | (2)  |・・・ 上記のような表があり、今までは関数にて、(1)のセルに検索条件を入力し、(2)のセルに「=SUMIF(D2:H2,A2(1),E2:I3)という式を入れ計算していました。 種類1~種類3に入力されている情報と(1)が合致したら、数量1~数量3を合計した値を(2)へ記入したいのです。 この検索条件が60項目あり、行数も2000行を超えているのですが、、全てのセルに関数を入れている状態です。

  • エクセルで三行ごとのデータを1行ごとに表示させたい

    下のように三行ごとにあるセルを参照し、他のセルに一行ごとに表示する方法(関数、もしくはマクロなど)   A B C D 1 あ     あ 2       い 3        4 い 5 6 7 う 8 あるいはあるセルに入力されている数値を数式内の行、または列として指定する方法を探しています。 (たとえばA1に4、A2に3と入力されていたとき、B2でその数値を取得しC3の内容を表示する、といった感じです) 簡単そうなきがするのですが私の検索が悪いのか、見つけることが出来ませんでした。ご存知の方お願いします

  • エクセルの関数等で2つの検索値からの抽摂したい

    VLOOKUP関数等で2つの検索値から、ある表の値を結果を出すことは可能ですか? 検索値1 検索値2 結果(関数) 8:00 15:00 12000 (セルA) (セルB) (セルCより抽摂) 表 A B C 1 8:00 12:00 10000 2 8:00 15:00 12000 3 9:00 12:00 10000 ・ ・ ・ 勿論他の関数での方法でも構いません

  • エクセル・単純に合計を出す・・

    表を作っています。 例えばセルを A1~A3,A4~A6,A7~A9 と結合させてそれぞれ数値を入力してます。 B列は結合無しでそれぞれ数値を入力しています。 A+Bの合計をC列に計算させます。 C1に関数を入力して、C2以降はコピーします。 単純に(A1+B1)にすると C1は正しく合計してくれるのですが コピーしたC2は(A2+B1)となってしまい Aが0として計算されてしまいます。 (A$1)と、してしまうと当然ですが C4以降の計算が狂います。 C4は結合されたA4~A6を見てほしいのです。 実際に作っている表は、もっと数が多いので 1つづつ計算では・・・ 何かよい方法はないでしょうか? よろしくお願いします。

  • 数値の検索と抽出

    エクセルワークシート上で A2~A10001 と B2~B10001 にランダムな2桁の数値が入力されているとして、 セル範囲 Range("B2:B10001")の数値を A2 の数値で検索し、条件に一致したA2の数値があれば、C2に転記(A2の数値) 無ければ、転記なし。 セル範囲 Range("B2:B10001")の数値を A3 の数値で検索し、条件に一致したA3の数値があれば、C3に転記(A3の数値) 無ければ、転記なし。 セル範囲 Range("B2:B10001")の数値を A4 の数値で検索し、条件に一致したA4の数値があれば、C4に転記(A4の数値)      !   無ければ、転記なし。     !               !              ! セル範囲 Range("B2:B10001")の数値を A10001 の数値で検索し、条件に一致したA10001の数値があれば、C10001に転記(A10001の数値) 無ければ、転記なし。 これが出来るマクロ文を教えてください。お願いします。

  • EXCELでの工程表の作り方を教えてください

    EXCELは簡単な関数しか使えない者です。 この度下記のような工程表を作成することになり、 検索しましたがなかなか思うような例がありません。 関数・マクロに詳しい方、どなたかご教授願えませんでしょうか。 (利用環境はExcel2003です) (1)A1のセルに「入力規則→リスト」で担当地区を選択するようになっている (2)A4~A200のセルに、細分化した作業工程の明細が段階毎に入力されています。 (3)B4~B200のセルは「入力規則→リスト」で”未処理”と”処理済”を選択するようにしています。 今回の要望はB列のセルを”処理済”にした段階で、 同じ行のC列に、A1で選択している担当地区をコピーし、 同時にD列に”処理済”に変更した年月日時間を入力したいのです。 色々調べてIF関数で挑戦してはみたものの、 A1セルを変更した段階で今までの作業工程も 全て更新されてしまいます。 マクロ・関数で実現可能であればご教授いただきたいです。 宜しくお願いいたします。

  • Excelの関数について

    [C1のセル値]-[A1またはB1のセル値] を使って計算したい場合の計算式を教えて下さい。 A列、B列、C列には具体的な数値を入力します。 D列にその結果を表示させる関数を入力したい。 と考えています。 但し、以下の条件を満たす事が必須となります。 (1)A、B、またはCのセルが未入力の場合はDは空白セルのまま。 (2)A、Bいずれかの一方が入力されている場合はCの値を使って計算し結果を表示。 (3)A、Bいずれも入力されている場合はBを優先してCの値を使って計算し結果を表示。 よろしくお願いします。

  • エクセル セルにデータを打ち込んだ時点でマクロを起動できるか?

    いつもお世話になります。 数千行ある表の列A,Bに数値を打ち込むセルを用意しており、打ち込まれた瞬間に、列Cに関数を使って答えを出したいのですが、列Cに予め関数を入力しておくと、計算が非常に遅く、また容量も重くなってしまいます。 そこで、 「列A,B両方にデータが打ち込まれた瞬間にマクロで列Cに数式を入力し、答えを出してから値で貼り付ける」 ということが出来ないかと思うのですが、可能でしょうか。 以上宜しくお願い致します。

専門家に質問してみよう