Excelで、

Excel310閲覧

ベストアンサー

0

ID非公開

2021/12/4 22:21

ID非公開

2021/12/4 22:42

なおIFERROR関数が使えない環境なら =IF(ISERROR((VLOOKUP(C3,'ws1'!G:N,7,FALSE)="-")/F3),0,(SUMIF('ws1'!G:G,C3,'ws1'!N:N)/F3)*(1-2*(VLOOKUP(C3,'ws1'!G:N,7,FALSE)="-"))) としてみて下さい

ThanksImg質問者からのお礼コメント

とても分かりやすい説明で勉強になりました。他の皆様も、ありがとうございました!

お礼日時:2021/12/6 0:48

その他の回答(3件)

0

後ろに全く同じ関数が並べてあるのは何故か 数式の結果を条件で分けて何回も使う必要があるからですね。 例えばA1:A10の合計が100以上ならA,70以上ならB・・・などと条件分岐しているとSUM(A1:A10)が何回も出てくるようになりますね。 =IF(SUM(A1:A10)>=100,"A",IF(SUM(A1:A10)>=70,"B",IF(S・・・・・のような感じです。 これはOFFICE365のバージョンで解消されています。この場合何回も出てくる SUMIF(ws1!G:G,C3, ws1!N:N)/F3 を変数のようなものに入れることができます。 でも在来のバージョンではできないので、例えばA3セルに =SUMIF(ws1!G:G,C3, ws1!N:N)/F3 と入れておくとA3セルの値を代入すればいいようになります。 -1*はマイナス1を掛け算しないさい、の意味ですから-A3で間に合います。 この数式を考えた人は長い数式が好きな人のようです。 A3セルに =SUMIF(ws1!G:G,C3, ws1!N:N)/F3 を入れておけば今回の数式は =IFERROR(IF(VLOOKUP(C3, 'ws1'!G:N,7,FALSE)="-",-A3,A3),0) でいいです。

いつも丁寧に教えて頂きありがとうございます。 A3セルに=SUMIF(ws1!G:G,C3, ws1!N:N)/F3←入れます! ="-",-A3,A3),0) =はどういう意味があるのでしょうか。 そのあとは、 -なら-A3、違うならA3、エラーなら0という意味で合っていますでしょうか。

0

最終的に「=SUMIF(G:G,C3,N:N)/F3」にプラスかマイナスの符号をつけて返しています。 「先頭行にマイナス符号を入力するかしないかで」N列の各行に符号なしでの入力を許可したものでしょう。 符号を探すために「VLOOKUP関数」を使っています。 エラー対策で「IF関数・ISERROR関数」を使っています。 =IF(ISERROR(数式A),0,数式A) エラーになるのは「VLOOKUP関数の対象がない」、検索して「返された値がエラー値」、「F3セルが0あるいは未入力」の場合です。 また、一つのIF関数の「真の場合」「偽の場合」に共通する部分があるので、これは外に出します。 =IF(VLOOKUP(C3,G:N,7,FALSE)="-",-1,1)*SUMIF(G:G,C3,N:N)/F3 ということで、提示された数式は次式のように記述できます。 =IF(ISERROR(IF(VLOOKUP(C3,'ws1'!G:N,7,FALSE)="-",-1,1)/F3),0,IF(VLOOKUP(C3,'ws1'!G:N,7,FALSE)="-",-1,1))*SUMIF('ws1'!G:G,C3,'ws1'!N:N)/F3

分かりにくい説明を読み解いて頂きありがとうございます。 すみません、【FALSE)="-",-1,1)/F3),0,】←ここが理解が出来なくて、、、 VLOOKUPの後に=が入るのはどういう意味があるのでしょうか。 "-",-1, これは、マイナスなら-1を掛けるという意味で合っていますでしょうか。 最後の0は、エラーなら0を表示するという事でしょうか。 よろしくお願いいたします。

0

作成者に聞いてください。 取得した結果に対してエラーがあれば、どうするかと言うことなのでは? 結果的に、式だけでは何をしたいのか判らない。 最低限、使用しているシートがあれば、どのようになっているのかは判るかと思います。

>【*】これは何ですか? まずは、エクセルの基本を勉強してください。 質問の式での場合だと、「掛け算」を意味する記号です。