• ベストアンサー

エクセルの関数

こんにちは。 私は今実験のデータを整理しようとしているのですが、ひとつ質問です。 例えば あるセルに値を入力し、その値(:=x)が 0<x≦10ならば隣のセルにx+10の計算結果を表示 10<x≦20ならば、x^2+xの計算結果を表示 ・ ・ ・ という風に関数のxの領域によって関数を分けたいのですが、どうすればいいのでしょうか?

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

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

No.2・3です! >の領域がたくさんあるのですが・・・ とありますが、領域によって数式も変わってくるわけですかね? もしそうであれば表示セル限定になりますが、(オートフィルでコピーは考えていません) ↓の画像のように表を作成して、各領域ごとに数式を入れておく方法はどうでしょうか? 画像では勝手に「5」毎で領域を区切り、G列に表示している数式を入れています。 (表内にあらかじめ数式の値を表示しておく) そしてB1セルに =IF(A1="","",INDEX(F2:F7,MATCH(A1,E2:E7,-1))) という数式を入れています。 E2セルにはこれ以上ない!という数値を入れておきます。 実際はD列は必要ないのですが、判りやすくするために敢えて表示しています。 今はこの程度しか思いつきませんが、 B1セルのオートフィルが必要だったり、他に良い方法があればごめんなさいね。m(_ _)m

toraemons
質問者

お礼

解答ありがとうございます。 画像添付なので分かりやすかったです。まずはこの方法で試してみます。

その他の回答 (5)

  • matsu_jun
  • ベストアンサー率55% (146/265)
回答No.6

toraemonsさん、こんにちは 分岐の条件が、10<x≦20 のように範囲であり、ある特定の場合でなく(例えばx=1のような)、かつその結果演算する式も複雑なものである場合、やはりIF文を利用するのが楽で、分かりやすいと思います。 しかしながら、soixanteさんがANo.4で答えられているように、IF文の入れ子(条件分岐)は限度があるため(ちなみにExcel2003以前は7段、つまり(条件1)~(条件7)、それ以外の8種しか分岐できません)、条件が増えてきた際に難しくなります。そこで、卑怯なやり方ではありますが、たくさんの列を利用して解決しましょう。 列Aに結果が書かれているものとします。セルA1にはタイトル、セルA2から下にデータが入っているものとします。 列Bはまずは空行にしておきまして、まずは列Cに最初の条件および計算式を入力します。セルC2に =IF(AND(0<A2,A2<=10),x+10,0) そして、これを下のほうへ、結果のある行までドラッグします。セルC1には、タイトルとして範囲を書いておけばよいでしょう。 条件に合致したら計算結果を、合致しなければ0を表示することになります。 次に、列Dに次の条件および計算式を入力します。 =IF(AND(10<A2,A2<=20),x^2+x,0) これも結果のある行までドラッグします。 これを、条件の数だけ右側へ展開します。 で、処理が全て終了しましたら、B列に、以下の処理をします。例えば条件式がz列まであったとすると、セルB2に =SUM(C2:Z2) としてやり、下へ展開してやればよいことになります。 データがたくさんになってしまいますが、それなりに分かりやすいかと思いますが、いかがでしょうか。

toraemons
質問者

お礼

回答ありがとうございます。 こんなやり方があったんですね・・ エクセルは使い方次第で化けるという事を痛感しました><;

  • soixante
  • ベストアンサー率32% (401/1246)
回答No.4

IF分のネスト(入れ子)は、いまは64個になっているそうです。 頑張ればいけますが、読みにくくなります。 http://www.eurus.dti.ne.jp/yoneyama/Excel/waza/if01.html どのくらいの領域(パターン)があるのですか。 またそれらのアウトプットはどうしたいのですか その形によっても助言も変わってくるでしょう。

toraemons
質問者

お礼

解答ありがとうございます。 全部で25つの領域です。まずは他のやり方で試してみて、もし無理だったらIF関数で頑張ります^^;

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

No.2です! 投稿後に気づきました。 前回の数式内で不必要な等号がありました。 =IF(OR(A1="",A1<=0,A1>20),"",IF(A1<=10,A1+10,A1^2+A1)) に訂正してください。

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

こんにちは! xの値が 0以下か20を超えた場合は空白にするようにしています。 A1セルにxの値を入力するとします。 表示したいセルに =IF(OR(A1="",A1<=0,A1>=20),"",IF(A1<=10,A1+10,A1^2+A1)) ではどうでしょうか? ※ 余計なお世話かもしれませんが、数式内の >A1^2+A1 の部分は当然のことながら >=A1*(A1+1) としても同じ結果になります。m(_ _)m

toraemons
質問者

お礼

解答ありがとうございます。 ちょっとやってみます! ところでxの領域がたくさんあるのですが、IF文以外でいい方法とかないですか・・?カッコがたくさん出てきてしまうので・・

noname#158634
noname#158634
回答No.1

IF関数を使えばできます。

toraemons
質問者

お礼

解答ありがとうございます。 ちょっとやってみます! ところでxの領域がたくさんあるのですが、IF文以外でいい方法とかないですか・・?カッコがたくさん出てきてしまうので・・

関連するQ&A

  • Excelの関数について

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

  • エクセル関数のデータ表示がすぐされない

    エクセルで或るセルにデータを入力したら別のセルにデータ表示されるように「関数」を使っています。 例えばA1のセルに生年月日を入力したら隣のB1に満年齢が表示されるというようにです。 以前はA1に生年月日を入れたらすぐにB1に満年齢が表示されていたと思うのですが、いつの間にやらすぐには表示されなくなりました。 そして、保存をしようとすると、入力したセルの関数が変換表示されて、保存されます。 以前のように、入力したらすぐに関数の値を表示するには、どうすればよいのでしょうか?

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

    エクセルの関数について。 エクセルの関数について困っています。エクセルの関数を使って、クイズ大会をしようと考えているのですが、 x7セルに”=IF(M7=1,X7+N4,IF(M7=2,X7+P3,X7))” と入力しても「循環参照」 になり、計算できないのです。 自分としては、 M7が1なら、今あるX7の値にN4の値を加え、 M7が2なら、今あるX7の値にP3の値を加え、 M7が1,2以外なら今あるX7の値をそのまま表示したいのです。 どうすればよいか助言をよろしくお願いします。 ※関数はどんな関数でも構いません。 ※当方、Excel2010を使用しています。 ※スクリーンショットも貼りつけておきます。

  • エクセル関数について

    エクセル関数について質問です。 前回の質問と似ています。以下のことは関数で可能でしょうか。 ・セルA1からA4には数値が入力される。 ・セルA1からA4のいずれかに入力された値をB1に返す。 ・セルA1からA4で二つ以上のセルに入力がある場合、B1には「ERROR」という表示を返す。 ・B1は桁区切り「#,###」スタイルにする。 以前教えていただいたこと等を参考に試してはみたのですが、思うような結果が得られませんでした。 関数に詳しい皆様、どうか教えていただけますでしょうか。 よろしくお願いいたします。

  • 続・エクセル関数での塗りつぶし

    いつもお世話になります。 先ほど質問させていただき、有効な回答をいただいて試してみたのですが、隣のセルの色を変えた方がより見やすいと言われました。 本当に申し訳ないのですが、もう一度質問させていただきます。 エクセルの関数を使ってのセルの塗りつぶしについて質問があります。 A1のセルの値(%表示、別のシートからリンクして貼り付けてあります。)が 30%以下ならB1を赤、 30~80%ならB1を黄色、 80%を超える値ならB1を青 と言うふうにセルの塗りつぶしを行いたいのですが、やり方がよくわかりませんので質問させていただ きます。 以上のことについてよろしくお願いします。

  • エクセル関数の演算後のデータ

    エクセルのVLOOKUP等関数でデータを引っ張ってきたとします。例えば社員番号番を基に名前や住所などを。その場合データが表示されているセルには既にVLOOK等の関数が入力されていますので、セルに入っているのは当然抽出したデータのみではありません。データが うまく抽出された後、そのセルに結果として得られたデータのみを、例えば数値データなら数値データ、文字データなら文字データとしてセルに格納することは出来るのでしょうか?つまりセルの中の関数式を取り去り、結果として出たデータのみを残しておきたいのですが・・・何か特殊な式が必要でしょうか?セルの設定のみで結果データのみを残す方法はありますか?結果をコピーして値のみを貼り付けとする以外にないでしょうか。

  • エクセル関数について

    参照するセルの値(計算結果)が0時間なら“0”と表示し、1分以上4時間未満なら“500”と表示し、4時間以上なら“1000”と表示したいのですが、どなたか教えて下さい。自分の知ってるIF関数ではできないようなので? よろしくお願いしますです。

  • エクセル関数でおしえてください

    Aのセルに「する」「しない」のどちらかを入力するとして、 「する」と入力すると、Bのセルに「○」、 「しない」と入力するとCのせるに「○」、 と言う風に、表示する文字は「○」で同じでも、表示させるセルを変えたい場合、どの関数式をかいたらいいのか教えてください。 マクロはできれば使いたくないので、関数でお願いいたします。

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

    表計算のフォームを作成しているのですが、表示がうまくいかず困っています。どのような関数をどう使えばよいのか教えていただきたいのですがよろしくお願いします。  (1)セルでの計算式の数値が【0.6】となる  (2)この数値を小数点の桁の切り上げで【1】と表示しなおす  (3)この【1】の値に【5000】をかけたら【3000】になってしまう。  【1】と表示されたセルに【5000】をかけて【5000】となるためにはどの部分にどのような関数を用いればよいでしょうか?

  • エクセル関数について

    エクセルの関数についてなのですが、例えば「セルA3」に「セルB2」の値を表示させるには「=(B2)」と「セルA3」に表示させてます。別のSheetの値も表示できるのでしょうか?例えば「Sheet1.Range("A3")」の値をSheet2のA1に表示させたい場合Sheet2のA1にはどのような関数を入力していけばよいのでしょうか?VBAは使わずに表示したいのですが。関数はまだほとんど使ったことがないので分かる人いたら教えてください。よろしくお願いします。

専門家に質問してみよう