- ベストアンサー
下記の式の意味が理解できず関数の式が組めません。
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))))) 上記の関数式の意味が分からず自分で式が組めず困っています。どなたかかなりの初心者ですが教えて頂けませんでしょうか。宜しくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
ここのサイトは、このような問題にはすぐ解答が付くと思いますが >かなりの初心者 ということなので、細かく回答を書いてみます。 一.まず、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:・・・がというように結果が表示されます。 文章で、書くとわかりにくかったでしょうか?
その他の回答 (4)
- mu2011
- ベストアンサー率38% (1910/4994)
以下の条件で値を表示するみたいです。(関数説明は、既回答を参考にして下さい) ・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を表示
お礼
分かりやすくて助かりました。ありがとうございました☆
- hirumin
- ベストアンサー率29% (705/2376)
[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]で改行できますので試してみて下さい。
お礼
どうもありがとうございました☆
- kokorone
- ベストアンサー率38% (417/1093)
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の値と一致する値を設定 こんな意味でしょうか。
お礼
どうもありがとうございました☆
- acacia7
- ベストアンサー率26% (381/1447)
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関数の式の区切りに注意してみてください。
お礼
どうもありがとうございました☆
お礼
どうもありがとうございました。 助かりました☆