- ベストアンサー
エクセル2003 #N/A含む複数シート数値合計
複数のワークシートの数値の合計がうまく出ません。 A,B,C,Dという名前のシートのセルA2の数値の合計を 「集計」というシートのセルA3に出したいのですが (ちなみにA,B,C,DシートのセルA2にはvlookup関数がはいってます) 例えばシートBのセルA2の表示が#N/Aだと sum、sumif関数で合計を出そうとしても 「集計」シートのセルA3には#valueと出てしまいます。 うまく#N/Aをのぞいて数値の合計値を出す方法はありますか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
VLOOKUPの式の結果が エラー (#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME? または #NULL! のいずれか)の時に空白を返すようにします。 =IF(ISERROR(VLOOKUPの式),"",VLOOKUPの式)
その他の回答 (4)
- keithin
- ベストアンサー率66% (5278/7941)
SUM関数は3D串刺し計算が出来ますが,エラーを排除して計算できません。今の状況では#N/Aが出ます。 SUMIF関数はエラーを排除して計算できますが,3D串刺し計算ができません。今の状況では,各シートにエラーが無くても#VALUEになります。 シートがABCDと判っているなら =SUMIF(A!A2,">0")+SUMIF(B!A2,">0")+SUMIF(C!A2,">0")+SUMIF(D!A2,">0") などのようにしてしまうのも,計算を通す一つの方法です。 B1からB4セルに =A!A2 =B!A2 =C!A2 数値がでている =D!A2 #N/Aが出ている を並べて =SUMIF(B1:B4,">0") などのように計算する手もあります。 #いずれも各シートの「正しい数値」の内容に応じて,適切に「">0"」の部分を調整すること でも既出回答にもありますが,各シートのVLOOKUPの式を =IF(ISNA(VLOOKUP( )),"",VLOOKUP( )) などのようにしておき, =SUM(A:D!A2) で集計する方がクールです。 #更に言うなら ISNA(VLOOKUP()),VLOOKUPと式中で2度も同じVLOOKUPの計算をするのはイカにもクールじゃないので,エラーが出る原因をキチンと調べて =IF(COUNTIF(範囲左端列,検索値),VLOOKUP(検索値,範囲,列,FALSE),"") といった具合に工夫できるとイイですね。
お礼
くわしい説明ありがとうございまづ
- KURUMITO
- ベストアンサー率42% (1835/4283)
例えば現状の式が =SUM(A!A2,B!A2,C!A2,D!A2)のようになっているとしたら次のようにします。 =SUM(IF(ISERROR(A!A2),0,A!A2),IF(ISERROR(B!A2),0,B!A2),IF(ISERROR(C!A2),0,C!A2),IF(ISERROR(D!!A2),0,D!A2))
お礼
なんかすごいながい式ですね 参考にします ありがとうございます
- mp20palpunte
- ベストアンサー率49% (258/523)
ABCDのシートでどんな式を使っているかわからないので、正確なところは言えませんが、 ■方法1 シートABCDのセルA2に、エラーが表示されないようにする http://kokoro.kir.jp/excel/vlookup-na.html こちらのページに書かれていることの応用で、空欄や0と表示されるようにすれば、 SUMで一発で計算できます。 ■方法2 エラー文を、空欄や0に置き換える エラー文がいつも同じものであれば(例えば#DIV/0!固定で表示されるなら)、 それを置換してしまう方法です。 シート集計で、一旦ABCDのセルA2の値を参照します。 その参照したセルに対して、 =IF(COUNTIF(C4,#DIV/0!),"0","") というセルを設けます。 これで、#DIV/0!が入ったセルは空欄になります。 上記のセル群を、SUMで計算します。 周りくどいかもしれませんが、 他シートのセルを直接指定するよりは、一旦それぞれをまとめた場所を同シート内に作り、 それらを計算するというほうが、エラーになったときに一目でわかることも多いし、良いのではないかと思います。
お礼
方法1で試させてもらいます ありがとうございます
- mu2011
- ベストアンサー率38% (1910/4994)
対象範囲にエラーがあれば計算できませんので、現状のVLOOKUP式を以下の様な方法で空白にしては如何がでしょうか。 =IF(COUNTIF(VLOOKUPの検索範囲,VLOOKUPの検索値),現状のVLOOKUP式,"")
お礼
ちょっとやってみます。ありがとうございます。
お礼
やはりこのやり方がベストでしょうか アドバイスありがとうございます 助かります