- ベストアンサー
エクセルのIF関数について
- エクセルのIF関数を使用する際に、Aシートに入力された数字や記号に応じて他のシートに値を返す方法について詳しく教えてください。
- Aシートの特定のセルに入力された数字がある場合はその数字を、空欄の場合は0を返す処理と、別のセルに特定の記号がある場合は1を、空欄の場合は0を返す処理を組み合わせ、その合計値を別のシートのセルに表示する方法について教えてください。
- 上記の処理を実現するために、以下のようなIF関数の組み合わせを使用していますが、エラーが発生しています。(IF(Aシート!AF15="","0",Aシート!AF15))+(IF(Aシート!R26="※","1","0"))。どこが間違っているのか、教えていただけますか?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
=(IF(Aシート!AF15="","0",Aシート!AF15))+(IF(Aシート!R26="※","1","0")) まず、外側の括弧は要らないのでは? =IF(Aシート!AF15="","0",Aシート!AF15)+IF(Aシート!R26="※","1","0") 計算するなら、文字列でなく数値では? =IF(Aシート!AF15="",0,Aシート!AF15)+IF(Aシート!R26="※",1,0) 右側はOKっぽい IF(Aシート!R26="※",1,0) 問題は左か? IF(Aシート!AF15="",0,Aシート!AF15) Aシート!AF15を数値変換する IF(Aシート!AF15="",0,VALUE(Aシート!AF15)) 空白判定を数値判定にしても良い IF(ISNUMBER(Aシート!AF15), VALUE(Aシート!AF15), 0) 合体 IF(ISNUMBER(Aシート!AF15), VALUE(Aシート!AF15), 0)+IF(Aシート!R26="※",1,0)
その他の回答 (5)
- 178-tall
- ベストアンサー率43% (762/1732)
>エラーになるのは、 > =Sheet_A!AF15+IF(Sheet_A!R26="*","1","") >と書きこんだばあい。 ↓ エラー値はこれ。数値と文字の加算! #VALUE! このタイプじゃありませんか?
- 178-tall
- ベストアンサー率43% (762/1732)
>私は、このように作ってみたのですが、エラーが出てしまいます。 > =>(IF(Aシート!AF15="","0",Aシート!AF15))+(IF(Aシート!R26="※","1","0")) ↑ これだと、エラーになりませんでした。 エラーになるのは、 =Sheet_A!AF15+IF(Sheet_A!R26="*","1","") と書きこんだばあい。 また、 =Sheet_1!AF15+IF(Sheet_1!R26="*","1","0") や、 =Sheet_1!AF15+IF(Sheet_1!R26="*",1,0) だとエラーにならない。 セル内位置は微妙に違うけど…。
- kagakusuki
- ベストアンサー率51% (2610/5101)
Excelの関数の中では "0"+"1" のような""で括った文字列同士の四則計算であっても、その文字列が数値に変換可能なものであれば 0+1 と同じ結果が得られます。 ですから、もし"質問者様の仰る通りだと仮定"しますと 【例1】の場合、 =(IF(Aシート!AF15="","0",Aシート!AF15))+(IF(Aシート!R26="※","1","0")) =(3)+("1") =3+1 =4 【例2】の場合、 =(IF(Aシート!AF15="","0",Aシート!AF15))+(IF(Aシート!R26="※","1","0")) =("0")+("1") =0+1 =1 【例3】の場合、 =(IF(Aシート!AF15="","0",Aシート!AF15))+(IF(Aシート!R26="※","1","0")) =(1)+("0") =1+0 =1 【例4】の場合、 =(IF(Aシート!AF15="","0",Aシート!AF15))+(IF(Aシート!R26="※","1","0")) =("0")+("0") =0+0 =0 という事になり、エラーは出ない筈なのです。 しかし実際にはエラーが出ているのですから、質問者様が仰る事のどこかが実際とは異なっているという事になります。 ではどこが間違っているのか(つまりエラーとなる原因は何なのか)と申しますと、おそらくシート名が Aシート とは異なっているのではないかと思われます。 実際のシート名か、或いは関数の中で記述されているシート名のどちらかが A となっていたり、 ASheet や シートA などといったように、 Aシート ではないシート名になっている事は無いでしょうか? 或いは、 Aシート や A シート などの様に前後や途中に空白が含まれていたり、 'Aシート や A.シート などの様に、目立たない文字や記号が含まれているのを見落としておられるなどといった事は無いでしょうか? 又、 Aシート と Aシート の様に、全角文字と半角文字の違いがあった場合には、通常であればExcelが自動的に正しいシート名に変換してくれる様ですが、それが何らかの原因によって上手く行っておらず、半角文字と全角文字の違いによって、関数に入力されているシート名が、実際に存在しているシートとは異なるシート名として扱われてしまっているなどという事は御座いませんでしょうか? ですから、試しにAシート以外のシート上にある適当な使用していないセルに = と入力してから、そのままAシート上の適当なセルを選択してみて下さい。 その際、「!」マークの前に表示されるのが、関数中でAシートを指定する際の正しい記述の仕方ですので、そのシート名の記述の仕方に合わせて、問題の関数中でもAシートを指定する様にして下さい。 尚、回答No.1様が触れておられる様に、質問者様の関数は色々と無駄な点が多い様ですから、シート名の記述の型を正しいものとした上で、例えば次の様な形式の関数にされた方が宜しいのではないかと思います。 =SUM(Aシート!AF15)+(Aシート!R26="※")
- bunjii
- ベストアンサー率43% (3589/8249)
>私は、このように作ってみたのですが、エラーが出てしまいます。 ご提示の数式をExcel 2013で干渉しましたがエラーは出ませんでした。 あなたのExcelのバージョンは? 尚、この場合はIF関数を必要としません。 =Aシート!AF15+(Aシート!R26="※") Aシート!AF15が未入力のときは計算時に0と評価されます。 また、論理式の(Aシート!R26="※")に何らかの数値を加減乗除するとFalseのとき0、Trueのとき1になります。 もし、Aシート!AF15に数式があり返り値が""のことがあり得るときは次のようにすれば良いでしょう。 =SUM(Aシート!AF15,Aシート!R26="※") SUM関数では集計範囲に文字列があるとき無視されますが、論理式については1または0と評価します。
- mshr1962
- ベストアンサー率39% (7417/18945)
単純に数値の前後に""で囲んで文字列にしてるのが原因ですね。 =IF(Aシート!AF15="",0,Aシート!AF15)+IF(Aシート!R26="※",1,0) もっとも下記のようにした方が簡単かもしれません。 =SUM(Aシート!AF15)+COUNTIF(Aシート!R26,"※")