• ベストアンサー

エクセルの数値選択で

   A   B   C   D --------------------------- 1  100   500  1000  5000    … 2   3     4     5     6     … 3   5     3     5     7     … 4   2     3     4     5     … 5   4     5     2     7     … の表があったとします。 X1のセルに数値を入力すると、その数値が100未満ならX2に3~X5に4を代入、100<=X1<500ならX2に4~X5に5を代入するなど、複数の列に対し1行目の数値を判定し2行目以下の数値を指定のセルに代入したいと思います。 4以上の複数列に対しては、どのような式を使えばいいのでしょうか。IF式を使ったのですがうまくいきません。 どなたかご教示ください。

  • nkeis
  • お礼率57% (86/150)

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

#1です。 >この数値を1として入力しても同じ結果でしたが、A1としなくてはならないのはなぜでしょう? X8=ROW(A1) として下方にコピーすると X9=ROW(A2) X10=ROW(A3) となりそのまま1,2,3に置き換わるからです。 数値をそのままの場合、行単位で書き換えが必要になります。 別セルにある連番(1,2,3...)を参照してもかまいませんが 一つの数式でできる方がいいでしょうから...

nkeis
質問者

お礼

大変参考になりましたありがとうございます。納得しました。 今後ともよろしくお願いします。

その他の回答 (3)

noname#204879
noname#204879
回答No.4

  A   B  C  D   E  … 1  0 100 500 1000 5000 … 2  3  4  5  6   … … 3  5  3  5  7   … … 4  2  3  4  5   … … 5  4  5  2  7   … … 》 その数値が100未満なら… 1行目のデータを右に1列分移動して、セル A1 に「その数値」の最小値を入力するのが簡単です。 上は最小値が 0 の場合なので適宜変更してください。 セル X2 に式 =HLOOKUP(X$1,A$1:W$5,ROW()) を入力して、此れを下方に複写すればよろしいかと。 この式は当該表の右端が列Wまで有効です。

nkeis
質問者

お礼

実は当初私が質問したときの表では、100未満ではエラー(数値の表示なし)だったので、ご教示いただいたように変更していました。 ありがとうございます。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

#1です。 >ROW()はどのように使うのでしょうか? たとえば =ROW(A8)と8が返ります。 つまり()内のセルの行位置を返す関数です。 ただし()内を省略した場合は、数式のある行位置を返します。 =INDEX($T$8:$Z$20,●,MATCH($C$11,$T$7:$Z$7,1)) でT8のデータがほしい場合、●には1が必要なので =INDEX($T$8:$Z$20,ROW(A1),MATCH($C$11,$T$7:$Z$7,1)) として下方にコピーすれば使えます。 ※ROW()関数は行ですが列位置(数値)がほしい場合はCOLUMN()が使えます。

nkeis
質問者

お礼

たびたびのご教示ありがとうございます。 >=INDEX($T$8:$Z$20,●,MATCH($C$11,$T$7:$Z$7,1)) >でT8のデータがほしい場合、●には1が必要なので >=INDEX($T$8:$Z$20,ROW(A1),MATCH($C$11,$T$7:$Z$7,1)) >として下方にコピーすれば使えます。 ●にA1をいれてうまくいきました。 ありがとうございました。 この数値を1として入力しても同じ結果でしたが、A1としなくてはならないのはなぜでしょう?今後の参考としてお伺いできますでしょうか?

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

X2=LOOKUP($X$1,$A$1:$W$1,$A2:$W2) または X2=HLOOKUP($X$1,$A$1:$W$5,ROW(),TRUE) または X2=INDEX($A$2:$W$5,ROW(),MATCH($X$1,$A$1:$W$1,1)) でX5までコピー

nkeis
質問者

お礼

=INDEX($T$8:$Z$20,●,MATCH($C$11,$T$7:$Z$7,1)) ●に行数を指定してやればうまくいきました。 ちなみにROW()を入れると違う数値を取ってしまったようです。ROW()はどのように使うのでしょうか?

関連するQ&A

  • エクセルである数値を色分けする

    エクセルである数値の統計表を作成しています。 表全体の数値の中で例えば15~20という数値のセルだけ指定の色を付けたいのです。 条件付書式で設定すると複数の条件が重なった時には、指定通りに表示されません。また条件付書式で設定した場合、完成したその表に新たに別の表からコピーした数値を貼り付けると設定した条件が消えてしまいます。 私の作成したいのは、 条件1・表全体の数値から15~20という数値のセルを黄色。 条件2・C列の数値の中で35以上だけセルを赤色。 条件3・F列の数値の中で38~40だけセルを青色。 条件4・G列の数値の中で5以下のセルを緑色。 この場合条件2と条件3は数値が重なるので条件3を優先させることは無理でしょうか? 上記のような条件で表を作成できますか? もうひとつ、 指定の列の中に、ある条件の数値がある時、別の指定のセルに任意の文字を表示さたいのです。 例えばA列の数値の中に5~8の範囲の数字があれば、J30のセルに”あああ”という文字を表示させ、9~12の数値の場合は”いいい”と表示させ、13~18の時は”ううう”と表示させる。 このようなことは出来ますか? 作成方法を教えてください。 よろしくお願いします。

  • Excelの数値の比較がうまくいきません???

    ExcelのVbaでアンケートの入力フォームを初めて作成しています。 フォームに,テキストボックスを配置して,それを指定したセルに代入するというものです。 このとき,テキストボックスの中身とセルの中身が一致しているかどうかを判断したいと考えて, If Range("A1").Value = Textbox1.Value then ・・・ などとやりました。 そしたら,文字列の時は,うまくいくのですが,数値を入力したら,明らかに同じ数値が入っているのに,上の条件式が"False"になってしまうのです。 IsNumeric関数で調べると,双方とも数値であるとの結果が出ています。どちらも数値であっても3=3が"False"になってしまうのです。 どういうことなんでしょう? どなたかよろしくお願いいたします。

  • エクセルの関数でABSの使い方

    質問1、 関数ABSの使い方を教えてください。SUM関数での結果がマイナスとなったとき、同時にそのマイナスを消すIF合体の式が分かりません。そして たとえば5行、5列の表があります一番上の行の5個の各セルの数値が、残りの4行4列の各セルにある数値と同じならば、色をつけたり、そうでないものは、消去したりできる関数の数式をおしえてください 宜しくお願いします。

  • エクセル2003で、それぞれの行には5列~10列の数値が入っています。

    エクセル2003で、それぞれの行には5列~10列の数値が入っています。 それらを常に右から(数値が入っている右端のセル)から4列のみ残す 関数式はどのように組めば良いでしょうか。

  • エクセル数値一覧表の一括入れ替え方法は?

    エクセルの数値一覧表(例えばA~X列の1~100行の数値表)の 列の中心M列?を軸にしてA列をX列へ左右一括入れ替える方法を教えて下さい=又行も50行を軸に1を100に100を1へ上下一括で一覧表を入れ替える方法はありませんか?

  • エクセル関数の範囲指定を、座標数値で指定したい

    address関数とindirect関数で、行・列を数値で指定して、セルの値が求められますが、同じように行・列の数値を4つ使って範囲の指定をしたいのですが、どのような関数を使えばよいでしょうか? 具体的には、=MATCH(A1,範囲,1)の範囲を、2組の座標の数値で指定したいのです。

  • エクセルで数値の和を求める方法を教えてください

    エクセルでA列の数値がA1=x1、A2=x2、A3=x3、・・・・An=Xnであるとき、 B列で次の数値を求める方法を教えてください B1=x1、B2=x1+x2、B3=x1+x2+x3、・・・・・Bn=x1+x2+x3+・・・・・+xn nが小さいときはSUMで一つ一つ計算すればばよいのでしょうけれども、nが数百なので数式でB列を作りたいと思います

  • 最も近い数値のあるセルを探す

    お願いいたします。 エクセルVBAです。 例えばC列に10000行以上にわたって数値が不作為に 並んでいるばあい、347.398に一番近い数値の あるセルの行を求めるコードはどのようになりますか? ご教示お願いいたします。

  • EXCELで数値の同じセルの行を自動的に選択したい

    ある固定のセル(例えばA列1行目)に入力した値と同一値が入っているセル(A列の?行)を検索し、その行すべての値を固定の行(例えば2行目)に自動的に入力する方法はありますか。 具体的に言うと、 前提条件として、行は日々増えていきます。 (1)セル(A1)に「2006/11」と自分で入力すると、 (2)A列内で「2006/11」を自動的に検索する。 (3)その結果セル(A15)に同一値が見つかったとする。 (4)15行目の数値(列A~列Gまで)を2行目に自動的にコピーする。 自分で入力するのは(1)だけです。 このようなことはどうすればできるのでしょうか。

  • エクセルで行から数値を検索し、検索した数値のある列

    エクセルで行から数値を検索し、検索した数値のある列から左側の全ての合計を求めたいです。   A B C D E F 1  3 4 8 9 11 22 ←数字は隙間なくあるが、値がバラバラ(ただし昇順) 2 3  2~6行には色々な数字がまばらにある 4 5 6 1行目から検索したい数→10(別のセルで数式結果として出た数) ズレてるかもしれませんが・・・ E1セルに書かれている「11」の数字より前のD列、 A~D列の2行目~6行目の合計を各行ごとに別々に出していきたいです、どうしたらいいでしょうか また、表は行も列もデータを追加していく予定です

専門家に質問してみよう