エクセル関数による条件付きセル値の表示方法

このQ&Aのポイント
  • エクセルの関数を使用して、行と列の条件を満たすセルの値(%)を表示させる方法についての質問です。
  • 具体的な元データとして、0000~1000、1001~2000、2001~3000の行と、000~100、101~200、201~300の列にそれぞれ値があります。
  • 行と列の値を入力すると、交差したセルの値が表示される関数をご教示ください。
回答を見る
  • ベストアンサー

エクセルの関数についての質問です

エクセルの関数についての質問です 独学でエクセルを勉強しておりますが以下のような表の中から該当する値を返すことは可能でしょうか。 方法はどのようなものでもアドバイスをいただければトライしてみようと思います。 以下のような元データの中から、行の条件と列の条件を満たすセルに表示されている値(%)を 表示させる関数。そもそも関数での解決は不可能かもしれませんが、もし方法があれば ご教示お願いします。       0000~1000  1001~2000  2001~3000 000~100    5%      5%      4% 101~200    4%      4%      3% 201~300    3%      2%      1% 行と列の値を入力するとその交差した値が表示させたい。 例)行の検索したい数値を110、列の検索したい数値を1200と指定した場合、表示させたい数値は"4%"。 ぜひぜひよろしくお願いいたします。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

以下のようなリストに変更し、INDEX関数などで交差する位置のデータを求めることができます。     0      1001    2001  0   5%     5%     4% 101  4%     4%     3% 201  3%     2%     1% =INDEX($B$2:$D$4,MATCH(行の検索したい数値,$A$2:$A$4),MATCH(列の検索したい数値,$B$1:$D$1))

minamonmon
質問者

お礼

とってもスマートなご回答をいただきありがとうございました! 今日も終日悩みましたが、帰宅後この関数にチャレンジして無事に解くことができました。 複数の関数の組み合わせにまだ慣れていないので、こういう方法を見るとただただ感動してしまいます。 これからも精進します、ありがとうございました。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! 一例です。 行データが300を超えたり、列データが3000を超えた場合は適宜対応してみてください。 ↓の画像のように表を作っておきます。 実際は薄い緑の部分だけでOKなのですが、 判りやすくするために、未満の列・行を表示してあります。 C2セルに =IF(COUNTBLANK(A2:B2),"",INDEX($G$3:$J$6,MATCH(A2,$E$3:$E$6,1),MATCH(B2,$G$1:$J$1,1))) という数式を入れ、オートフィルで下へコピーすると 画像のような感じになります。 以上、参考になれば良いのですが 他に良い方法があれば読み流してくださいね。m(__)m

minamonmon
質問者

お礼

すごく丁寧なご回答をいただきありがとうございました。 添付していただいたリストが、私が頭を悩ませていたまさにそのリストと酷似していたため 大変参考になりました。 同じくINDEXとMATCHの組み合わせは今後も度々お世話になりそうなので しっかり勉強したいと思います。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

縦項目,横項目ともに表記を現在の「0~100」をから「以上の数値」に改めます。 もし,ゼロを0000と表記しなければならないのでしたら,セルを右クリックして書式設定の表示形式のユーザー定義で 0000 と設定しておきます。 元の表の作成例:左上隅がA1セル    0 1001 2001  0 5% 5% 4% 101 4% : 201 : 数式はG1やH1に110や1200を入れて =VLOOKUP(G1,A2:D4,MATCH(H1,A1:D1,1),TRUE) のような格好になります。

minamonmon
質問者

お礼

いち早くご回答いただきありがとうございました。 ご教示いただいた内容は今後の課題となるものでした。 VLOOKUPの使用は微塵も考えつかず、こういう使い方もあるのかと感嘆です。 この関数の使い方も今後使用の機会が増えると考えられますし応用も利くと思うので 勉強させていただきます。

関連するQ&A

  • エクセルの文字関数について教えてください

    エクセルで以下の条件の文字関数を教えてください。 「a列に正の数と負の数が数行単位でまとまって交互に繰り返しあり、その数行単位の中でそれぞれの最小値(最大値)を求める」 当方独学でエクセルを勉強していますがどうしてもわかりません。 よろしくお願いします。

  • EXCEL 関数 条件に当てはまる行数を求める

    1行の中の、複数の列の値に条件をつけ、それに当てはまる行数を関数で求めたいのですが、どうやれば良いのでしょうか? 行数を求めるのはおそらくROWS?だと思うんですが、その行の中の複数の列の条件をどのように指定すれば良いのか分からずに困っております。 (例) 列Cに文字列"青"、列Fに数値"5"が両方満たす行がいくつあるかを、どこかのセルに関数で求める。 よろしくおねがいいたします。

  • エクセル関数について

    エクセルの関数についてご教授下さい。 以下のように値が入力されております。 行 A B 1 あ か 2   き 3   く 4   け 5 い こ 6   さ 7   し 8 う す (要件)列Aに文字列がある場合に、その右隣の列の値を抜き取る この場合、か・こ・す を抜き取る ※文字は決まった行・列に入力されていません。 ”あ”はA2だったり、A100だったり。”い”もA10だったりA1000だったり。 また、文字も決まってるわけではありません。 ”あ”が”た”であったり、”い”が”ち”であったり。 そのため、”あ”を固定して検索するなどはできなさそうなので、列Aに値があれば、右隣の値を抜き取る。それを値がある分繰り返す方法で行いたいと思いました。 こちらを関数のみを使用して行いたいです。 以上、説明が下手で分かりづらいかも知れませんが、よろしくお願いいたします。

  • Excelの関数について

    Excelの関数について 私のExcelは2003です。 表を作っていて A列とB列に数値を入れてその合計をC列に自動的に出すようにするのは C列に「=SUM(A3,B3)」と入れますよね? 1日数回のデータを取り A列とB列に数値を入力し 1ヶ月ほどデータを取り続けるので その分C列に入れた関数を下へセルの右下にポインタを合わせて十字の記号を出して 下へ関数を入れたのですが その場合C列には0と表示されますよね? これは防げないものなのですか? 後、そのC列に表示された合計値を 次の行のA列に表示させたいのですが そういう関数はありますか? C列の合計値に次の数を足して、合計値をどんどん増やしていくので 例えばC1の値をそのままA2に表示。 C2の値をそのままA3に表示 C5の値をそのままA6に表示としたいのですが 関数があったら教えてほしいです。

  • EXCELの行列検索をおこなう関数

    EXCELに関する質問です。 条件で特定行・特定列を検索し、その値を取得する関数はありますでしょうか? たとえば、下の票で「え行」・「D列」を指定して、「8」という値をとってくる関数です。  ABCDE あ00012 い34500 う01004 え02080 お00000 基本的なことかもしれませんがご存知の方おられましたらご教授よろしくお願いいたします。

  • エクセルの関数について

    エクセルの関数に関するしつもんです。 一行中の値の中でマイナスの数値がいくつかあります。マイナスの値のなかで最左列にある値の列の最上位行の値を返したいのですが倫理式がわかりません。教えて下さい。 

  • Excelの関数で

    お願いします。 Index関数とMatch関数を使用して表の中の値を求めようとしましたが、 検索行が複数あるため、うまくいきません。 検索する列は1列(a,b,c)ですが、検索行(あ、い、う~)が複数になっています。 更に空白もあります。 こんな感じ↓です。 ---------------------   あ  い   う   え      お   か ---------------------    a  10  20  30 b  40  50  60 c  70  80  90 --------------------- こういった場合にはどんな関数を使って一致する値を求めたら良いのでしょうか? 大変困っております。よろしくお願いします。

  • 2つの数字の変化を読み取るエクセル関数はありますか

    エクセルの関数についてです。2つの数字の変化を A列  B列 100    1 103    1 109    1 120    1 105    -1 102    -1 120    1 123    -1 ・    ・ ・    ・ ・    ・ となっている時に,以下の2つの条件を満たす式を作ることはできますでしょうか。 (1)B列の数字を3行ずつ見てゆく。3行目までずっと1が続き,数字が変わらなければ(-1が出なければ)3行目のA列の数値(109)を取り出す (2)数字を取り出してから次の3行目までの間でB列の数字が変わったとき(1→-1,-1→1)には,変わった行のA列の数値(105)を取り出す。次は,B7なので120,次はB8なので123…と 数字を取り出す度にリセットして,新たに3行の中から新しい数字を取り出すようにしたいのです。 やはりマクロを組まないといけないのでしょうか? 分かりにくかったら申し訳ございません…

  • エクセル関数で困ってます。

    "オートフィルタ"使用中に "SUMIF"と"COUNTIF"も使用したいのですが… ある条件を"オートフィルタ"で 抽出した以下のような数値を、元に計算したいです。     「A」 「1」 +80 「2」 -10 「6」 +70 「9」 -20 「10」 +60 「11」 -30 「15」 +50 「18」 -40 「19」 +40 「20」 -30 ※「」は行、列の意味です。 ※「行」の数字が飛んでいるのは、オートフィルタで条件抽出の為 抽出された「行」のみ表示されているというイメージです。 ※列は、1列のみです。 上の数値の プラス(0以上の数値)の値 マイナス(0以下の数値)の値 プラス(0以上の数値)の平均値 マイナス(0以下の数値)の平均値 全てのデータの個数の合計 を出したいのですが オートフィルタを使用中が条件なんです。 現在は、抽出したデータをコピーし 計算シートに貼り付けしている状態です。 出来れば、一度に出したいです。 よろしくお願いします<m(__)m>

  • エクセル中で≠を意味する関数は?

    エクセルを使っています。sumproduct関数を使用して、複数の列でそれぞれ特定の条件を満たす行の数を数えたいです。その際に、「値が○○でない」という条件を入れたいのですが、「≠」のような関数はありませんか?

専門家に質問してみよう