• ベストアンサー

エクセルの関数で悩んでいます

たとえばA列に5,10,15,20…と5の倍数を置いて A1=<B1<A2のときC1は1 A2=<B1<A3のときC1は2 というように Ax=<B1<Ax+1のとき、C1にxが表示されるような式を作りたいと思っていますが、どうしたらいいのでしょうか? IF関数を使っていたのですが、上手くいきませんでした わかる方がいましたら、どうぞよろしくお願いします! 説明下手ですみません

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.7

この課題にぴったりの関数が有る。VLOOKUP関数だ。 普通この質問コーナーで答えに使うVLOOKUP関数は、第4引数が FALSE型だか, 本件はTRUE型。問題・場合によっては威力を発揮する関数だ。 色んな不規則な料金表など引ける場合が有る。将来役立つだろう。 すばらしいところは>A列に5,10,15,20…と5の倍数を置いて、のように規則性がないデータ区分でもよいことだ。 ここでは規則性のある区分なので、計算で出したほうが分かりやすいなんてなるかもしれないが、とりあえず5の倍数例で 例E-F列 0 1 5 2 10 3 15 4 20 5 25 6 30 7 35 8 40 9 ・・・ ーー A列A1に =VLOOKUP(B1,$E1:$F$30,2,TRUE) と入れる。 B1の数字を色々変えて、結果を見てください。 以上・以下・未満の点があり、上記の表では1づれる答えが返るときは、E列の表の刻みを1だけ加減して表を作ってください. 表の各行の見方の要領は 0 ==>(は) 1 か ら 5 と見てください。 ーー エクセルの課題で、検索的な課題に、IF関数を考えるのは初心者の証です。

tanchin55
質問者

お礼

とても丁寧に回答してくださり、ありがとうございました! VLOOKUP関数の仕組みがよく分かっていませんでしたが、これを機に使ってみようと思います ありがとうございました!!

その他の回答 (6)

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

こんばんは! 色々方法はあると思いますが・・・ 一例として ↓の画像のように表をつくってみました。 C1セルは =IF(B1="","",INDEX(ROW($A$1:$A$20),MATCH(B1,$A$1:$A$20,1))) (とりあえず、A1~A20までデータが入っている場合です) という数式が入っています。 これで希望に近い形にならないでしょうか? 尚、B1の値が5より小さい場合はエラーになります。 他に簡単な方法があると思いますが、 今はこの程度しか思い浮かびませんでした。m(__)m

tanchin55
質問者

お礼

とても丁寧な回答いただき、本当にありがとうございます! なるほど、ちゃんと数値が出ました。IF関数の使いかたにもいろいろあるのですね 本当にありがとうございます!

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.5

>たとえばA列に5,10,15,20…と5の倍数を置いて 他に目的があれば別ですが、質問だけですと、単に =ROUNDUP(B1/5,0) とか =Int(B1/5)+1 の答えになると思いますが、A列も省けます、

tanchin55
質問者

お礼

ちょっと質問が分かりにくかったかもしれません… A列の数値がランダムな場合は、またちがう方法になるんですね 今回はINT関数を使ってみたら解けました。ありがとうございました!

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.4

C1に =INT(B1/5) でいかがでしょう

tanchin55
質問者

お礼

INT関数を使ってみたら、解けました!! すぐ回答をくださり助かりました、本当にありがとうございました

  • akiomyau
  • ベストアンサー率43% (555/1280)
回答No.3

Bの値がA列のどこに該当するかという意味であれば 以下のような式でどうでしょうか。 =INT(B1/5)

tanchin55
質問者

お礼

INT関数を使ってみました! どうやら当方はややこしく考えすぎていたようで… 参考になりました、ありがとうございました

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

A1:A100に5から500の数値があるとして =MATCH(B1,A1:A100,1)

tanchin55
質問者

お礼

MATCH関数でできるんですね、やってみます! すばやい回答ありがとうございました!

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.1

◆これでいかがでしょう C1=IF(AND(A1<=B1,B1<A2),ROW(A1),"") ★下にコピー

tanchin55
質問者

お礼

すばやい回答をしてくださり、本当にありがとうございます! ぜひ参考にさせていただいて、やってみます ありがとうございました

関連するQ&A

  • Excel 関数 ランク比較

    A列 B列 C列  今週 前週 ↑↓ X   X   E1  D   ↑ E1  B   ↑ A   B   ↓ 今週の状態(A列)と前週の状態(B列)を格納した列があります。 2つの状態を比較し、状態がよくなってれば「↑」、反対に悪くなってれば「↓」、変わらなければ何も表示しない ということを、C列に関数式を入れて、上記のように表示させたいです。 IF関数で作成しようとして考えていたのですが、うまく考えが纏まらず悩んでいます。 ランクは (良)X、A、B、C、D、E1、E2、S(悪)の順になります。 どうか教えて頂けますと幸いです。

  • エクセル2003の関数について教えて下さい

    A、Bには数値が入力してあり、Cへ下記の数値を一度で求めるエクセル関数を教えて下さい。 Cは、A列>5であれば各行のB列/A列をA列の倍数で切り上げ、A列<=5であればその各行のB列の総和を1で割り切り上げたいです。    A   B   C 1 20 59.1  3 2 25 40.2  2 3  1 0.5   2 4  3  1       *A列は固定値、B列は変動値です。  *C3にてA列<=5の条件を満たす部分を指定可能なので、C4では計算せず、まとめてC3で計算処理します。 何度も試行錯誤して試してみても答えが出ませんでした。 よろしくお願い致します。 ※CEILING、IF、SUM、ROUNDUP関数を組み合せてみましたが・・・。

  • これはエクセルのIF関数を使ってできますか?

    こんばんは。 エクセルで悩んでいます。 A列に、"大学"・"高校"をオートフィルタで選べるようにして、 B列に、大学なら1~4の数字、高校なら1~3の数字を入力します。 そして、C列に、A1="大学"かつB1=1なら30(ポイント)、         A1="大学"かつB1=2なら40、         A1="高校"かつB1=1なら20、         それ以外は空白 というような自動計算式を作りたいと考えています。 この場合、IF関数とAND関数で作成すればできますでしょうか。下記のような式を作成しましたが、うまくいきません。 =IF(AND(A1="大学",1),30,IF(AND(A1="大学",2),40,IF(AND(A1="高校",1),20,""))) 説明が下手で申し訳ありませんが、 なんとかアドバイスいただければ幸いです。 よろしくお願いします。

  • エクセル 関数を教えて下さい。

    ちょっと複雑なのですが、こういう場合の関数の式はどうすれば良いか解る方がおりましたら教えて頂きたいのですが、宜しくお願い致します。 列AではAまたはBを選択し、列Bでは列AのA,Bそれぞれにa,b,c,d,eのいずれかを選択したときに、列Cに列A・列Bで選択したのもに当てはまる記号・数字を表示させるといった関数なのですが、何度挑戦しても引数が限界を超えている等になり出来ません。 もしかすると、根本的に間違っているかもしれません。ちなみにIFを使っていました。 列A  列B  列C A     a     × A     b     2.3.4 A     c     2.3.4 A     d     1.3.4 A     e     2.3.4 B     a     × B     b     2.3.4.10.11.12 B     c     2.3.4.10.11.12 B     d     1.3.4.9.11.12 B     e     2.3.4 列A・列Bを選択すると、列Cに上記の記号・数字を自動表示させたいです。 以上、宜しくお願い致します。

  • エクセルの関数について教えていただけたらうれしいです。

    エクセルの関数について教えていただけたらうれしいです。 例> A B C 01 70 1 01 20 01 10 02 20 02 50 1 02 30 03 80 1 03 20 04 60 1 04 20 04 20 上記のように、A列内に同じ文字(数字など)がある場合、それぞれのB列にある値の最大値がある、C列へ「1」などのフラグが立つような関数はどうしたらよいのでしょう? 説明が下手ですみません。 A列の「01」が3つあるうち、B列の「70」が最大値なので、C列に「1」が付く。 A列の「02」が3つあるうち、B列の「50」が最大値なので、C列に「1」が付く。 A列の「03」が2つあるうち、B列の「80」が最大値なので、C列に「1」が付く。 A列の「04」が3つあるうち、B列の「60」が最大値なので、C列に「1」が付く。 このようになるようにC列に入れる関数が知りたいです。 よろしくお願いいたします。

  • エクセル関数の質問。

    エクセル関数の質問です。 画像添付します。 画像のように、A・B列に「0」「1」「2」「空欄」がランダムに並んでいます。 C列に判定を表示します。 判定基準は、A・B列が同じ=○        〃  異なる=×        〃  空欄有り=△です。 この場合、IF関数とCOUNTIF関数で式を作ったのですがエラーが出てしまいます。 お分かりの方がいましたら教えて下さい。 宜しくお願い致します。

  • エクセルのどの関数を使ったらいい?

    いつもお世話になってます。 A,B,Cとそれぞれ違う項目でAとC列に内容が入っているものを選択する関数はIF関数ですか? その場合論理式を教えて下さい。

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

    エクセルのIF関数について質問をさせて頂きます。 現在、下記のような条件で抽出できる式を考えているのですが、 中々思うような式が思い浮かびません。 例えば、     A列  B列  C列  D列 1行目  111 2行目  222 3行目  333 4行目  444 5行目  555 6行目  666 7行目  777 8行目  888 9行目  999 上記のようなシートがあったとして、     A列  B列  C列  D列 1行目  111       999 2行目  222       333 3行目  333   ○   123   × 4行目  444 5行目  555 6行目  666 7行目  777 8行目  888 9行目  999   ○ 上記のように、例として C列の1行目に「999」と入力した場合、A列の9行目に「999」の数字があるので、その横のB列に「○」 C列の2行目に「333」と入力した場合、A列の3行目に「333」の数字があるので、その横のB列に「○」 C列の3行目に「123」と入力した場合、どこにも該当番号がないので、入力したC列の横、即ちD列の3行目に「×」を表示 要は、A列のどこかに該当数字があった場合にはその数字の横(B列)に「○」、どこにも該当数字が無い時には、入力した数字の横、D列に「×」を表示するような数式を考えています。 IF関数を使えばできるような気がするのですが、色々と試してみても中々うまくいきません。 下手な説明で分かり辛いかもしれませんが、どなたかご存知の方がいましたら、ご教授の程頂ければ幸いです。 どうぞ宜しくお願い致します。

  • エクセル IF関数 条件

      A  B  C (1) 100 98 (2) 100 120  (3)  0  0 答えをCに表示したい。 B列がA列より大きい場合は0 B列がA列より小さい場合は ((B列-A列)×100円)+1000円 A列が0の時は、0円 A列が0の時に、1つのIF関数だけでは 1000円が表示されてしまいます。 どんな式をいれたらいいか教えて下さい。

  • エクセルの関数についての質問です。エクセルは2003です。

    エクセルの関数についての質問です。エクセルは2003です。 A列とB列とC列には数字(金額)が入っております。 A列とB列を比較して一致するものには○(マル) 不一致には×(バツ)を付けるにはIF関数で倫理式にA=B 真の場合に○ 偽の場合に× と設定すれば出来ると思うのですが A列とB列とC列の3つの列を比較してD列に○×を付けたいのですが方法が 分かりません。A列とB列が同じでもC列がAとBと違うなら×というように 3つの列が同じ場合のみ○ どれかひとつの列で違うなら×と表示させたい のです。素人ですので伝えにくいですが宜しくお願い致します。

専門家に質問してみよう