• ベストアンサー

エクセルの関数について

8通りの場合が考えられて その中で該当する答えを入力するようにしたいのですが 私では分かりません。 1つ目 D1セルの値がE1セル値より5枚以下少なく 且つ   G1セルの値の数字がプラスの時 以上の時は 結果Aとする 2つ目 D1セルの値がE1セル値より5枚以上少なく 且つ   G1セルの値の数字がプラス10点以上の時 以上の時は 結果Bとする 3つ目 D1セルの値がE1セル値より少なく 且つ   G1セルの値の数字がマイナス10点以内の時 以上の時は 結果Aとする 4つ目 D1セルの値がE1セル値より少なく 且つ   G1セルの値の数字がマイナス10点以上の時 以上の時は 結果Cとする 5つ目 D1セルの値がE1セル値より多く 且つ   G1セルの値の数字がプラスの時 以上の時は 結果Dとする 6つ目 D1セルの値がE1セル値より5枚以上多く 且つ   G1セルの値の数字がマイナス10点以内の時 以上の時は 結果Eとする 7つ目 D1セルの値がE1セル値より多く 且つ   G1セルの値の数字がマイナス10点以内の時 以上の時は 結果Cとする 8つ目 D1セルの値がE1セル値より多く 且つ   G1セルの値の数字がマイナス10点以上の時 以上の時は 結果Fとする このときに、H1セルに8つの答えの中から該当する物を選び結果AからFを自動的に入れるようにしたいのですが、H1にはどのような関数を入れれば良いでしょうか?

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

  • ベストアンサー
  • CMLT
  • ベストアンサー率40% (143/357)
回答No.2

・D1=E1の場合の定義が無いので5,6,7つ目の条件に含める。 ・D1=E1-5 且つ G1>=10 の場合、結果A,Bが重複するので一つ目の条件を5未満と解釈する。 ・-10以上というのは普通に考えるとG1>=-10(-10と同じか大きい)だが、-10以内という表現があることから-10以上を-10以下ととらえ、-10以内を-10<G1<0と解釈する。 ・6つ目の条件が7つ目の条件に包括されてしまっており、6つ目を優先させないと結果Eが存在しなくなるのでそうする。 ・D1<E1-5 且つ 0<G1<10 の場合が存在しないんですが!!!→結果Zとする。 H1にまとめて式にした場合、例えば、 =IF(G1>-10,IF(G1<0,IF(D1<E1,"A",IF(D1<E1+5,"C","E")),IF(D1<E1,IF(D1>E1-5,"A",IF(G1<10,"Z","B")),"D")),IF(D1<E1,"C","F")) あとは条件分け作業セルを別に作っておいた方が楽には出来るしあとから直しやすいとは思いますが。

sioux1963
質問者

お礼

そうですね、確かに条件分け作業セルを作った方がいいんですね。。。 本当に助かりました。ありがとうございます。

その他の回答 (3)

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

こんばんは! たびたびごめんなさい!No.3です。 何度も質問文を読み返してみましたが、範囲分けが理解できなかったので 便宜上↓のように表を作ってA~Pまで入れてみました。 参考にしてみてください。 データはA2~E7に入っている場合です。 E1-D1      Gの値      >10   10  0  -10 >5     A   B   C  D  5     E   F   G  H  0     I   J   K   L -5     M   N   O  P として、表示させたいセルの数式は =IF(AND((E1-D1)>5,G1>10),B4,INDEX(C5:E7,MATCH(E1-D1,A5:A7,-1),MATCH(G1,C3:E3,-1))) A列は(E1-D1)の値が5を超え、G1が10を超えた場合は勝手にB4セルのデータにしています。 この表の説明としては、仮にA列の「0」の行は -5<「0」の行≦0 ということです。列に関しても同様の解釈でOKです。 以上参考にしていただいて、表の中のデータをアレンジしていただければ 希望に近い形のものが出来るのではないでしょうか? どうも長々と失礼しました。m(__)m

sioux1963
質問者

お礼

どうもありがとうございました。感謝感激です。 これを参考に考えさせて頂きます。 本当にありがとうございました。

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

こんばんは! No.1のfujillinさんが仰っていらっしゃるように重複する値がありますので その辺を解消した場合に、 fujillinさんの画像をヒントにすれば・・・ D1・G1セルの値を数値に直し、降順に並べると INDEXとMATCH関数を併用すれば出来るような感じがします。 時間があればゆっくり考えてみたいと思います。 回答にはなっていなくて、ごめんなさい。m(__)m

sioux1963
質問者

お礼

人に頼ってばかりで申し訳無いのですが時間があればまた是非回答の方よろしくお願いいたします。m(__)m 本当申し訳無いですw

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

境界の条件(*1)が不明なのと、条件の優先順位(*2)が不明です。 *1)~以上、~以下で条件を示されていますが、等しいとき    はどちらに含まれるのでしょうか?(文言上は両方とも該当) *2)条件が重複して該当している場合、1~8の条件の優先順位が   決まっていないと、結果をどうすればよいのかわかりません。 >数字がマイナス10点以内の時~ は-10点以下のときと解釈していいのでしょうか? 他に「マイナス10点以上の時」というのがあるので、とりあえず以下として… ご質問文の条件を(一部適当に)解釈して、表にしてみると添付のようになります。 ダブっているところをどう判断するのか、値が境界と等しい場合はどちらに含むことにするのかなどをクリアにしないと、どなたも回答できないでしょう。 (境界の等号は意図的に外してあります)

sioux1963
質問者

お礼

早速のご回答誠に感謝致します。 確かにご指摘の通り少し境界があやふやでした。申し訳ありません。 もう一度その辺はきちんと確かめてもう一度連絡させて頂きます。 本当にありがとうございました。

関連するQ&A

  • エクセル関数

    たとえばA1のセルに未定のマイナスの数字の時は650を掛ける       A1のセルに未定のプラスの数字の時は700を掛ける その値をA2に表示したいです。 A1のセルの数字が毎回変わる 掛ける数字はいっしょです よろしくお願い致します。

  • エクセルのマクロ(関数?)について質問です。

    会社で、以下の資料作成を依頼されましたが、いろいろ調べましたが全くやり方の見当がつかないので、教えてください。。 病院に来院された患者さんで、 (1)予約時間に遅刻した (2)予約時間よりも早く受付、予約時間後検査開始 (3)予約時間よりも早く受付、予約時間よりも早く検査実施 以上3パターンの患者さんの数を把握したく、表を作成しなくてはなりません。 以下のURLに、サンプルファイルをアップしました。 http://kie.nu/yF2 列H(のセルH11からずっと下まで)に、上記3パターンが一発(もしくは2~3発)で表示されるようにしたいのです。 列A、B、Dの日時は、別のデータベースから抽出したものなので、最初から入力されています。 列Hのパターンを出す方法ですが、まず列C、E、F、Gにそれぞれ数式を入れないといけません。 例として、行11を試しに算出してみると、 ・セルC11=D11-B11(時間のみ引き算したいのですが、日付も入っているので出来なくて困ってます。。以下同様) ・セルE11=D11-A11 ・セルF11=D11-A11(計算結果がマイナスになる場合はゼロと表示されるようにしたい) ・セルG11=A11-B11 この計算で、G11の数字がマイナスになれば(1)のパターン、 E11の待ち時間のセルと、G11のセルの数字が両方プラスになっていれば(2)のパターン、 F11の待ち時間がゼロ、E11がマイナス、G11がプラスになっていれば(3)のパターン ということになります。。 あと、セルの色も、パターン(1)の時は列Cのセルが、パターン(2)の時は列Eのセルが、パターン(3)の時は列Fのセルを それぞれ黄色になるようにしたいのです。 すごく説明も複雑になってしまい大変申し訳ないのですが、 要は列Hに上記3パターンを簡単に表示させる方法が知りたいのです。 無理なお願いをしていることは承知しているので、「こんなの答えられない」といった趣旨の回答はご遠慮いただけたらと思います。。 出来れば至急でお返事いただきたいのですが、宜しくお願いいたします。

  • EXCELの関数でできますか?

    とある試験の結果の表をEXCELで作っています。 この試験は70点以上が合格で、70点以上が取れない場合は、追試を繰り返します。 EXCEL上で、下記のような表になっているとして、 本試で70点以上なら本試の値、 本試が69点以下で、追試が70点以上なら追試の値、 本試も追試も69点以下なら追々試の値 を、結果のセル(B2、B3、B4)にそれぞれ返すことはできますか? いくつか試してみたのですが、うまくできません。 どなたかお助けくださいませ。     A    B      C     D    E 1  名前   結果   本試験  追試  追々試 2  Aさん  75    75 3  Bさん  72    50     72 4  Cさん  70    50     60   70 よろしくお願いいたします。

  • エクセルの関数

    セルAとセルBに小数点の値があります。 セルAとセルBどちらか、 (1)0.2以下の値がある場合には、セルAかセルBの値の大きい方を別の列のセルCに入力。 (2)両方とも0.2以上の時には、上記とはまた別の列のセルDに【セルA×セルB】の値を入力。(小数点2桁まで表示、以下四捨五入) (1)と(2)で表示されたものを、またまた別の列のセルEにまとめて、 (1)は 値×5(小数点切り上げ) (2)は 値×25(小数点切り上げ) というものを作りたいのです。 IFとANDとROUNDUPなど使ってやってみましたが、わけがわからなくなってしまったので、 どなたか教えていただけたらありがたいです。

  • エクセル関数

    A1のセルに未定のマイナスの数字ときは、B1のセルに500を A1のセルに未定のプラスの数字のときは、B1のセルに200を入れるようにするには、 どうしたらいいのでしょうか? どうぞよろしくお願いします。

  • EXCELのIF関数について

    9セルA1~J1に1~15の数のうちの10個が一つずつ入っており、セルA3~J3にも1~15の数が入っています。またA2~J2には、A~Jまでの英字が入っています      1 2 15 9 7 6 5 4 11 3        A B C D E F G  H  I  J       2 3 5 7 9 10 11 12  13 15   のとき                                          B J G E D    I        C   のようにA3列の値と同じ1列の数字の下の値を            A5 列に表示したいのですが、何度やってもできません。      良い知恵をお持ちの方、よろしくおねがいします。

  • IF関数

    セルA1に例えば2000とあり、B1に例えば30と数字が入った場合はD1にA1の2000に30プラスになり2030と出て、C1に例えば30と数字が入ったらマイナスされて1970となるようにしたいのです。 D1のセルにIF(B1<>"",A1,A1-C1)と入力してもプラスはしてくれるのですがマイナスの方はなりません。 どうか教えてください。

  • EXCELの関数初歩

    ○1つのセルの数値に対して ”5%に消費税をかけ、小数点第1位は切捨” の値を別の1つのセルで計算したいです。 セルの数値に5%+TAXまではOKです。 ROUNDと合わせてもエラーが(>_<) ○A1マイナスA2ででた数値をセルA3に表示した時、 A3の数値の1以上の数字のみを(0もある) 自動的にA10・A11に自動的に『詰めて』抽出したい。 できるでしょうか? (たくさんの計算の中から余った金額だけを 一覧としてだしたい) 上手く伝わっていなければ補足します(^^) お願いします。

  • エクセルの関数?の大量コピーの方法について

    いつも早く的確なご回答、ありがとうございます^ ^ 少し前に、 5ケタの数字の和を求める方法を おたずねし、ご回答がえられたのですが、、 (ありがとうございます!) 例)12345なら、   1+2+3+4+5=15のようにしたい。 この5ケタの数字が10000数以上あります。。 教えていただいた方法を自分なりに応用させていただき、 表として見やすくできたのですが、 その処理を10000件以上行いたいと思っております。 A1セルに5ケタの数字を入力し、 C1セルに=VALUE(MID($A$1,1,1))、 D1セルに=VALUE(MID($A$1,2,1))、 E1セルに=VALUE(MID($A$1,3,1)) F1セルに=VALUE(MID($A$1,4,1)) G1セルに=VALUE(MID($A$1,5,1)) I1セルに=SUM(C1:D1:E1:F1:G1) とそれぞれ入力しました。 A2セル~A10000セル以上に数字を入力し、 上のような和を求めたいと思い、 ためしに1行をコピーし、 2行目に貼り付けてみたのですが、、 2行目の合計は、 1行目のA1セルに入力した数値のものになってしまいます。。 なんとか10000以上の行の和を、 うまく求められる方法はありますでしょうか?? 説明文がおかしい点などあり、 ご理解に苦しむかと思いますが、 ご回答いただけましたら幸いです。

  • エクセルでIFとANDを使った関数について教えて下さい

    A B C D E F G 1 1 2 3 結果 2/3 2/4 2/5 2 2/3 2/4 2/5 合格 0 0 1 3 上記のような表を作成しようとしています。条件が、 D1が「合格」で、 C2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じなら「1」、 違うなら「0」、 B2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じで尚且つ、 C2が「空欄」なら「1」、違うなら「0」、 A2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じで尚且つ、 C2が「空欄」で、B2が「空欄」なら「1」、違うなら「0」 を返しなさい。 という関数を作りたいのですが、上手くいきません。 IFとANDを使えばいいと思うのですが、どのように組み合わせれば 良いでしょうか。 真を返す、優先順位は、C2、B2、A2、のセルです。 C2に日付が入ってるときはB2とA2に日付が入っていても カウントされないように(偽が入るように)したいのです。 ちなみに、最初は、 =IF($D2="合格",IF($C2=E$1,1,IF($B2=E$1,1,IF($A2=E$1,1,0))),0) と、入れてましたが、これだと、C2に日付が入った時にC2だけカウント したいのに、B2もA2もカウントされてしまいます。 どうか、良きアドバイスをお願いします!!

専門家に質問してみよう