• ベストアンサー

下記の式の意味が理解できず関数の式が組めません。

IF(A10="","",IF(J10=1,0,IF(I10=0,LOOKUP(M10,$U$9:$V$10),IF(I10=1,LOOKUP(M10,$X$9:$Y$10),LOOKUP(M10,$AA$9:$AB$10))))) 上記の関数式の意味が分からず自分で式が組めず困っています。どなたかかなりの初心者ですが教えて頂けませんでしょうか。宜しくお願い致します。

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

  • ベストアンサー
回答No.4

ここのサイトは、このような問題にはすぐ解答が付くと思いますが >かなりの初心者 ということなので、細かく回答を書いてみます。 一.まず、IF(条件式,真の場合,偽の場合) 条件式がこの場合は、A10="" となっていますので、セルA10に何もないか?ということで、 ・何もなければ、真の場合に書かれている物が、この式が設定されているセルに入ります。この場合は、""ですので、何も入らない(表示されない)ということになります。 ・もし何かは言っていた場合、次の偽の場合にある、 IF(J10=1,0,IF(I10=0,・・・の、結果が表示されます。 二.IF(J10=1,0,IF( 条件式がこの場合は、J10=1 となっていますので、セルJ10の値が1であるか?ということで、 ・1であれば、真の場合に書かれている物が、この式が設定されているセルに入ります。この場合は、0ですので、値として 0が、入ります。 ・1でなければ、次のif関数の結果が表示されます。 三.IF(I10=0,LOOKUP(M10,$U$9:$V$10),IF(I10=1,LO・・ 条件式がこの場合は、I10=0 となっていますので、セルI10の値が0であるか?ということで、 ・0であれば、真の場合に書かれている物が、この式が設定されているセルに入ります。 この場合は、LOOKUP(M10,$U$9:$V$10)の結果が表示されます。 _○LOOKUP(検査値,配列) _検査値が M10 となっていますので、セルM10の値が、配列(この場合は、$U$9:$V$10 となっていますので、セルU9からV10の範囲)の、前の列(この場合はセルU9か、セルU10)の値と同じかどうかが検査され、もしセルU9と同じであればV9の値が、表示されます。もしセルU10と同じであればV10の値が、表示されます。もし、どちらとも等しくない場合は、セルU9、セルU10の値で、セルM10の値より小さい値があれば、そのセルの隣のV9か、V10の値になります。セルM10の値がセルU9セルU10よりも小さい場合は、#N/Aという、エラー表示になります。 また、$U$9:$V$10と絶対参照になっていますので、この式を別なセルにコピーした場合も、$U$9:$V$10の部分は変わりません。 ・三.のif関数で、0でなければ、次の), IF(I10=1,LOOKUP(M10,$X$9:・・・がというように結果が表示されます。 文章で、書くとわかりにくかったでしょうか?

miyu1107
質問者

お礼

どうもありがとうございました。 助かりました☆

その他の回答 (4)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.5

以下の条件で値を表示するみたいです。(関数説明は、既回答を参考にして下さい) ・A10が空の場合、空を表示 ・A10が空でない場合、J10が1ならば、0を表示 ・J10が1以外の場合、  ・I10が0ならばM10とU9:V10範囲を検索、有ればM10、無ければV10を表示  ・I10が1ならばM10とX9:Y10範囲を検索、有ればM10、無ければY10を表示  ・I10が1,0以外ならばAA:AB10範囲を検索、有ればM10、無ければAB10を表示

miyu1107
質問者

お礼

分かりやすくて助かりました。ありがとうございました☆

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

[IF条件]     [Trueの場合]     [falseの場合] という形に式を書き換えてみましょう。 すると、以下のようになります。 =IF(A10="", …(1)     "", …(2)     IF(J10=1, …(3)         0, …(4)         IF(I10=0, …(5)             LOOKUP(M10,$U$9:$V$10), …(6)             IF(I10=1, …(7)                 LOOKUP(M10,$X$9:$Y$10), …(8)                 LOOKUP(M10,$AA$9:$AB$10) …(9)             )         )     ) ) 【A10=""であるか?】 …(1)     True → ""を出力(空欄ですね)し終了 …(2)     false → J10=1であるか? …(3)         True → 0を出力し終了 …(4)         false → 【I10=0であるか?】 …(5)             True → LOOKUP(M10,$U$9:$V$10)を実行し終了 …(6)             false → 【I10=1であるか?】 …(7)                 True → LOOKUP(M10,$X$9:$Y$10)を実行し終了 …(8)                 false → LOOKUP(M10,$AA$9:$AB$10)を実行し終了 …(9) IF条件を目立つように【 】で囲ってみました。 LOOKUP関数は、(6)で説明しますと 『LOOKUP(M10,$U$9:$V$10)』 「$U$9:$V$10」の範囲から、[M10]の値を検索。同じものがあれば出力し、無ければ範囲に含まれている[M10]以下の最大の値を出力する (詳細はヘルプを参照して下さい) 長い式で判らない場合、このように段をつけて書き直すと判りやすい場合があります。 セルに式を入力中に、[Alt]+[Enter]で改行できますので試してみて下さい。

miyu1107
質問者

お礼

どうもありがとうございました☆

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.2

1)A10がブランクならば、ブランクを設定 2)A10がブランク以外の場合 2-1)J10が1ならば0を設定   2-2)J10が1以外の場合 2-2-1)I10が0ならば、U9からV10でM10の値と一致する値を設定 2-2-2)I10が0以外の場合        2-2-2-1)I10が1ならば、X9からY10でM10の値と一致する値を設定        2-2-2-2)I10が1以外の場合AA9からAB10でM10の値と一致する値を設定 こんな意味でしょうか。

miyu1107
質問者

お礼

どうもありがとうございました☆

  • acacia7
  • ベストアンサー率26% (381/1447)
回答No.1

IF( _A10=""; _""; _IF( __J10=1; __0; __IF( ___I10=0; ___LOOKUP(M10,$U$9:$V$10); ___IF( ____I10=1; ____LOOKUP(M10,$X$9:$Y$10); ____LOOKUP(M10,$AA$9:$AB$10) ___) __) _) ) IF(式1;式2;式3) 式1の値によって式2か式3の値を返します。 LOOKUP(Cell1,Cell2:Cell3) Cell1の値をCell2からCell3までの範囲から探します。 IF関数の式の区切りに注意してみてください。

miyu1107
質問者

お礼

どうもありがとうございました☆

関連するQ&A

  • IF関数で出来ないのかな?

    E13のセルにa,i,u,e,oが入力されたら、AA2:AA28から参照してZ2:Z28を現す事は以下の式でやっとこさ出来ました。 =IF(E13="a",(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(E13:E13="i",(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(E13="u",(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(E13="e",(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(E13="o",(LOOKUP(E13,AA2:AA28,Z2:Z28)),""))))) が!!! 今度はその逆でE13のセルにa,i,u,e,o以外が入力されたらAA2:AA28から参照してZ2:Z28を現す事が出来ません!! NOT関数で出来ると思って以下の式を作ったんですけど、 =IF(NOT(E13="a"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(NOT(E13="i"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(NOT(E13="u"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(NOT(E13="e"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(NOT(E13="o"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),""))))) これだと何故かa,i,u,e,oを含め全てで参照して表してしまいます。 また他にも IF(C13="i",IF(C13="u",IF(C13="e",IF(C13="o","",(LOOKUP(C13,AA2:AA28,Z2:Z28))),(LOOKUP(C13,AA2:AA28,Z2:Z28))),(LOOKUP(C13,AA2:AA28,Z2:Z28))),(LOOKUP(C13,AA2:AA28,Z2:Z28))), (LOOKUP(C13,AA2:AA28,Z2:Z28))) というようにNOT関数を使わずに"真"と"偽"逆にしてみたんですけど 結果はNOT関数と同じでした。 なぜ?分らない・・・。 とりあえずa,i,u,e,o以外が入力されたらAA2:AA28から参照してZ2:Z28を現す方法を教えて下さい。 そして余裕があれば、NOT関数と"真"と"偽"逆にした時に全てで参照して表してしまうのかも教えて欲しいっす!! ちなみにE13=MID(B3,2,1)となっていて、B3にある文字列から一文字抜いた状態です。

  • 説明:エクセル関数で条件が二つの時の数値抽出

    質問ではないですが、No8332355 の回答の説明です。 下記の式 =SUMPRODUCT(($AA$75:$AA$152=X75)*($AB$75:$AB$152=Y75),$AC$75:$AC$152) の説明です。 まず、SUMPRODUCT の第1引数ですが、 ($AA$75:$AA$152=X75) は”配列数式”と呼ばれていて、{$AA$75=X75,$AA$76=X75,$AA$77=X75,・・・,$AA$152=X75} という配列データを返します。 1つづつの式は比較論理式ですから、値が一致すれば1、しなければ0となります。 (例えば、3行目で一致するとすれば、{0,0,1,0,0・・・,0}となります。) 同様に ($AB$75:$AB$152=Y75) は {$AB$75=Y75,$AB$76=Y75,$AB$77=Y75,・・・,$AB$152=Y75} となります。 この配列数式を掛け算すると、個々の対応する配列位置のデータが掛け合わされた配列データができます。つまり、X75とY75の値がAA列、AB列で一致した行のみ1となり、他は0になります。 SUMPRODUCT は、この配列と、AC列のデータを個々に掛け合わせて足し合わせるので、結果として検索列が一致した行のAC列のデータが取り出せる、というわけです。 配列数式については、ググってみれば、いろいろ解説が書かれたページがヒットしますので、そちらをご覧になって下さい。 伝わりましたかね?

  • 複素関数の証明問題です

    f(z)がzの解析関数(正則関数)であるとき (∂^2/∂x^2 + ∂^2/∂y^2)|f(z)|^2 = 4|f'(z)|^2 を証明する問題なのですが f(z)=u(x,y)+iv(x,y)とおいて、左辺を計算すると、 (∂^2/∂x^2 + ∂^2/∂y^2)(u^2+2uvi-v^2) =(∂/∂x)(∂u^2/∂x)+(∂/∂x)(∂2uvi/∂x)-(∂/∂x)(∂v^2/∂x) +(∂/∂y)(∂u^2/∂y)+(∂/∂y)(∂2uvi/∂y)-(∂/∂y)(∂v^2/∂y) =(∂/∂x)(2u(∂u/∂x))+(∂/∂x)(2vi(∂u/∂x))-(∂/∂x)(2v(∂v/∂x)) +(∂/∂y)(2u(∂u/∂y))+(∂/∂y)(2vi(∂u/∂y))-(∂/∂y)(2v(∂v/∂y)) コーシー・リーマンの関係式を用いて、 =2(∂u/∂x)(∂v/∂y)+2i(∂v/∂x)(∂v/∂y)+2(∂v/∂x)(∂u/∂y) -2(∂u/∂y)(∂v/∂x)-2i(∂v/∂y)(∂v/∂x)-2(∂v/∂y)(∂u/∂x) =0 となりました。 最後のところで 2(∂u/∂x)(∂v/∂y)+2i(∂v/∂x)(∂v/∂y)-2(∂v/∂x)(∂u/∂y) -2(∂u/∂y)(∂v/∂x)-2i(∂v/∂y)(∂v/∂x)+2(∂v/∂y)(∂u/∂x) となれば 4{(∂u/∂x)(∂v/∂y)-(∂v/∂x)(∂u/∂y)} =4{(∂u/∂x)^2+(∂v/∂x)^2} =4|f'(z)|^2 となり、証明できるのですが、途中どこが間違っているかが分かりません 長文となりましたが、分かる方よろしくお願いします。

  • コーシーリーマンの式について

    コーシーリーマンの式を導く時に f'(z)=lim f(z+Δz)-f(z)/Δz    Δz→0 という式でf(z)=u+iv Δz=Δx+iΔyとおき Δy=0の場合 ∂u/∂x + i∂v/∂x Δx=0の場合 -i∂u/∂y+∂v/∂y これを比べて ∂u/∂y=-∂v/∂x というのが、なぜ右辺にマイナスが付くのでしょうか? 教えてください。 よろしくお願いいたします。

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

    エクセルのIF関数式を教えてください。 例えば、F2、G2、H2、I2のうち、それぞれに、Xを入力した場合、Xを入れたところだけ拾ってきて、それがF2とH2にXが入っているば場合、E2に、”AA/CC”と拾ってきたところを”/”(スラッシュ)でつなげて表示したいのですが、どうすればいいでしょうか。=IF(F2="X","AA) これだとF2にXが入っているときにE2に”AA”と表示されますが、これが複数の場合、”/”でつなげて表示がしたいです。お願いします。

  • 複素関数の導関数

    微分の定義     lim{Δz→0} {f(z + Δz) - f(z)}/Δz に立ち戻らずに偏微分などを使って複素関数の導関数を求めたいのですが。     w = f(z) = u + iv, z = x + iy (x,y,u,vは実数) として     f'(z) = dw/dz = (d/dz)(u + iv) までは合ってますよね? ここから     du/dz = (∂u/∂x)(∂x/∂z) + (∂u/∂y)(∂y/∂z) として     ∂z/∂x = 1, ∂z/∂y = i より     du/dz = ∂u/∂x - i ∂u/∂z 同様に     dv/dz = ∂v/∂x - i ∂v/∂z としてしまっていいのでしょうか? 実際の例としてf(z) = sin(z)を例に教えてください。

  • 複素関数

    解き方(過程)を教えてください。 関数w=1/z' (z'は共役複素数)について 円|z-3i|=1はどんな図形にうつるか? 答え・・・円|w-(3/8)i|=1/8 z=x+iy, z'=x-iy ,w=u+ivとおいて x=u/(u^2+v^2), y=v/(u^2+v^2)となり これを|z-3i|=1に代入しましたがうまく解けません。

  • 逆関数の偏微分

    自分は工学部の学部生です. 偏微分に関する質問です.   x=x(u,v), y=y(u,v) において,   u=u(x,y), v=v(x,y) と変形せずに(逆関数を求めずに),   ∂u/∂x, ∂v/∂y を求めたいのです.(たしか逆関数を求めずに逆関数の偏微分を求める方法があったと記憶しております) そこで,   (1)逆関数を求めずに,∂u/∂x, ∂v/∂yを求める方法 もしくは,   (2)微分(偏微分)の本のどこを参考にすれば解るか を教えていただきたいです.よろしくお願いいたします.

  • Excelで料金表示

    時間を入れると料金が表示される料金表を作成しています。 excel関数はあまり良く分からず、調べながら作業していますが どうしても出来ないので教えてください。 X3に「60」 Y3に「90」 Z3に「120」 AA3に「150」とし、 そして X4に「8400」 Y4に「11550」 Z4に「14700」 AA4に「18900」 としました。 L4(合計金額表示)に =SUM(I4+J4+M4)*105+(K4*175)+LOOKUP(L4,X3:AA3,X4:AA4) と計算式を入れましたが、L4に何も入力しないときには #N/Aのエラーが出てしまいます。 L4に何も入力しない時には、何も表示しないようにするには どうすれば良いのですか? (※I4、J4、M4は一律 1時間6300円の計算。K4は30分5250円です) また、表や計算式が間違っているなら教えてください。 よろしくお願いします。

  • 2次関数です。 式で表す…

    xの二次関数y=x^2+2mx-mの最小値zをmの式で表せ。 このzはmのどんな値に対して最大となるのか。その最大値を求めよ。 考え方~解答、解答をみて、やり方を学ばせてもらいますね。

専門家に質問してみよう