• ベストアンサー

関数式の意味

エクセルで関数を使った、数式がありますが、関数の中に関数を入れたりして、長い数式になると、その数式の意味がわかりにくくなってきてしまいます。 どこから、順番に読み始めればいいのか、分からない時がりますが、なにかコツのようなものはないでしょうか? 例えばこのような =(MIN(B2,"9:45")-MAX("8:00",A2)) +MIN(MAX(B2,"10:00"),"12:00")-"10:00" +MIN(MAX(B2,"12:45"),"17:45")-"12:45" =IF(and(IV$2<=A2,A2<=IV$3),IV$3,IF(and(IV$4<=A2,A2<=IV$5),IV$5,A2)) 宜しくお願いします

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

  • ベストアンサー
  • hirumin
  • ベストアンサー率29% (705/2376)
回答No.2

括弧の一方にカーソルを持っていくと対応する括弧が強調表示されますよね。 ただ、それだけで意味がわかりにくい場合もあります。 セルの式中 [alt]+[Enter] で改行出来るのをご存じでしょうか。 質問投稿の最初の式であれば、次のように改行するとわかりやすくなるのではないでしょうか。 =(MIN(B2,"9:45")-MAX("8:00",A2)) +MIN(MAX(B2,"10:00"),"12:00") -"10:00" +MIN(MAX(B2,"12:45"),"17:45") -"12:45" 二つ目の式は、このようにしてみます。スペースで空白を入れることが出来ます。 =IF(AND(IV$2<=A2,A2<=IV$3), IV$3, IF(AND(IV$4<=A2,A2<=IV$5), IV$5, A2 ) ) IF条件が正しい場合は次の行、そうでなければその次の行、という具合。 スペースは、IFの処理範囲をわかりやすくするために入れました。 意味もわかりやすくなると思いましたがいかがでしょう。

kotoha66
質問者

お礼

回答ありがとうございます。 まずは、式に使われている関数をしっかりと 理解していくことから、始めていきます。 >セルの式中 [alt]+[Enter] で改行出来るのをご存じ>でしょうか。 とても見やすくなりました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.4

最初の式は、 > =(MIN(B2,"9:45")-MAX("8:00",A2)) a2と08:00の遅い方からB2と09:45の早い方までと、 > +MIN(MAX(B2,"10:00"),"12:00")-"10:00" 10:00からB2が12:00以前ならB2まで、以降なら12:00まで。B2が10:00 以前なら0 > +MIN(MAX(B2,"12:45"),"17:45")-"12:45" 12:45からB2が17:45以前ならB2まで、以降なら17:45まで。B2が12:45 以前なら0 を全部足す。 と読みます。日本語訳は 勤務時間は10:00から17:45までで12:00~12:45は昼休みとする。ただ し、09:45までには出勤すること。遅れたら減額。08:00以降の分は早 朝手当を認める。残業はなし。 ってところかな。 次の式は、 > =IF(and(IV$2<=A2,A2<=IV$3),IV$3, A2がIV2以上IV3以下ならIV3 >   IF(and(IV$4<=A2,A2<=IV$5),IV$5,   じゃなくてIV4以上IV5以下ならIV5 >     A2))     どっちでもなければA2のまま と読みます。

kotoha66
質問者

お礼

回答ありがとうございます。 まずは、式に使われている関数をしっかりと 理解していくことから、始めていきます。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • hirumin
  • ベストアンサー率29% (705/2376)
回答No.3

前回投稿でスペースが反映されていませんでした。すみません。 ここで全角スペースに置き換えて再投稿します。 =IF(AND(IV$2<=A2,A2<=IV$3),   IV$3,   IF(AND(IV$4<=A2,A2<=IV$5),    IV$5,    A2   ) )

全文を見る
すると、全ての回答が全文表示されます。
  • Turbo415
  • ベストアンサー率26% (2631/9774)
回答No.1

通常は前から順に解析していくと良いでしょう。 で、例題ですが 括弧が多いので、まず最初の括弧の対応先を探しそれを大きなブロックとしてその中を解析し、その次の括弧の対応先を探してブロックとして処理するのが良いでしょう。 次の例ですが、 IFなので、原則的に最初の条件が満たしたらこれをし、次のIFの条件を満たしたらこれをする、それいがいならこれをするというのがこの関数の意味ですから、and条件2個が満たしたらIV$3を表示し、次のand条件2個を満たしたらIV$5を表示し、それ以外の条件の時はA2を表示するという意味です。

kotoha66
質問者

お礼

回答ありがとうございます。 まずは、式に使われている関数をしっかりと 理解していくことから、始めていきます。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【Excel】この関数式の読み方を教えてください

    =IF(COUNT(B1:C1)=0,"",SUM(B$2:B2)-SUM(C$2:C2)) という式です。関数についてはまったくの無知ですが少し調べました。 =IF(COUNT(B1:C1)=0 まではCOUNT 関数ですよね。この関数は指定した範囲内に入力されているセルの数を数えるということですが、なぜ=0なのでしょうか。 また$は参照先を固定するという意味だそうですが、 "",SUM(B$2:B2)-SUM(C$2:C2)) はどう読むのでしょうか? 関数や数式にまったく無知なのでご丁寧なご教示お願いします。 Excel2007利用です。

  • エクセルで関数の計算範囲に別の関数式で出した空白がある場合

    MAX関数を使う際、選択した範囲内(A10:A1000)に IF関数とISBLANK関数を使った数式 ( =IF(ISBLANK(C1),"",B2+C1) )の空白があると MAX関数がVALUEとなって計算されません どうしたらいいですか?

  • エクセルの関数の意味を教えてください。

    関数がまったく分からない者です。 以前エクセルの関数について質問をしました。(URL参照) http://questionbox.jp.msn.com/qa7570017.html その時は急いでいて意味を聞く時間がなかったので 下の関数の意味が分かる方、ぜひ教えてください。 =IF(A1=MAX($A$1:A1)-4,MAX($A$1:A1)+5,A1-1) 私の解釈は、A1が1であるときは5を足して、そうでないときは1を引く?なんですが ($A$1:A1)のところがよくわかりません。 よろしくお願いします。

  • excelのand関数、IF関数について

    エクセルのand関数、IF関数について質問です。 非常に簡単なことで申し訳ないのですが、仮にセルA2が5でかつセルB2が0の時にtrueとしたいときの関数は=and(A2=5,B2=0)であっているでしょうか。また、これをIFの関数で表す場合、=IF(A2=5,IF(B2=0,1,0),0)で同じ意味になるでしょうか?(IFの方は条件を満たす場合を1、満たしていない場合を0としたつもりです) ANDの方の関数は、多分合っていると思うのですが…。エクセルに入力しても、正しい結果が得られなかったので、質問させていただきました。初心者です。つまらない質問で申し訳ないのですが、よろしくお願いします。 

  • excel エクセル関数 min max の使い方について質問します

    excel エクセル関数 min max の使い方について質問します セルA1とB1にある二つの数字を比較して小さい方を選びたい時は例えば =min(A1,B1) をC1に数式を入力すればで計算でき、大きい方を選びたいときは =max(A1,B1)で計算できることまでは学習できました A1 に 1 B1 に 2 で C1 に =min(A1,B1)と式を立てると C1 に 1 と返されることは判りました では片方に「0」ゼロがある時、「0」を選ばずに自動的に値のある方を選ぶにはどんな関数の書き方をすれば良いでしょうか? A1 に 1 B1 に 0 で C1 に =min(A1,B1)の式に何を加えれば C1 に 1 と返されるでしょうか? 行数A1からA1500くらいまでありますので 「0」の時だけ別な式を立てる訳には行かないので困っています はて? 初心者です ヨロシク御教示願います <m(__)m>

  • エクセルの関数式に関してお願いします

    エクセルの関数式で A<Bの時B-Aの値、A>Bの時A-Bの値を返す式はどのようにしたら 良いのでしょうか? IF(AND(A<B),B-A,A-B) と入れたのですが、どうもうまくいきません。 よろしくお願いします。

  • Excel IF関数を短くする式を教えて下さい。

    ExcelのIF関数が長くなりすぎて困っています。 短くする方法あれば教えてください。 =IF(A1="",0,IF(A1<4.5,A1,4.5))+IF(B1="",0,IF(B1<4.5,B1,4.5)) のように"4.5より数が小さい場合はセルの値を返し、 4.5より大きい場合は4.5を返す"というのを繰り返し合計していきます。 60セル以上を合計したいのですが、それだと数式が長すぎて・・・ 何か短くする良い式があれば教えて下さい。 よろしくお願いします。

  • EXCEL関数について

    EXCELの関数「IF」において、 =IF(Aのとき、BもしてCもする、それ以外は何もしない) という関数にしたいのですが、 「BもしてCもする」とする場合、どのような数式を かけばよいのでしょうか。

  • 一つのセルでIF関数を二つ使いたい

    二つのセルの値を割って、%を表示させるために、三つ目のセルには 「=1-(B1/A1)」を入れていたのですが、そこに、二つのセルが空白の時にはエラー表示にならないようにIF関数を使い、三つ目のセルは 「=IF(ISBLANK(A1),"",(1-(B1/A1)))」 という数式にしました。 その数式にさらに、もし二つのセルの値が「0」の時には、結果を「0%」として表示させたくて、三つ目の数式の中にもうひとつのIF関数を同時に使いたいのですが、 一つのセル内に、IF関数を使って結果をうまく表示させるには、どのような数式にすれば良いでしょうか??

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

    エクセルのMAX関数についてご質問します。例えば、 A1セルに$B$1:$B20の文字列が入っているとします。 普通にMAX関数を使う時は引数を=MAX($B$1:$B20)と直接入力しますが、=MAX(A1セルの値($B$1:$B20))としてMAX関数の引数をあるセルの値の内容にしたいのですが、その方法を教えてください。困ってます。宜しくお願いします!!

DCP-J968Nで印刷ができません
このQ&Aのポイント
  • DCP-J968Nで印刷できない状況について相談します。
  • 印刷トラブルの経緯や試したことについて教えてください。
  • お使いの環境や接続方法について教えてください。
回答を見る

専門家に質問してみよう