エラーを含む名前付きの値の範囲を合計するにはどうすればよいですか?
-
12-10-2019 - |
質問
計算を実行する必要がある別のソースからデータをインポートするExcelスプレッドシートがあります。私が操作する必要があるデータは名前付き範囲です - それはたまたまC12:C36の範囲にあります - しかし、それは「sumdata」と呼ばれます。
この範囲の値には、現在#numを含む多くのエラーが含まれています! #n/aですが、潜在的に他のエラーを含めることができます。これらの値を合計する必要があります。
私は合計式を行う方法を理解しています:
=SUM(SumData)
または
=SUM(C12:C36)
Iferrorを使用してエラーを確認することもできます。
=IFERROR(C12:C36, 0)
しかし、Iferrorは、私が入力している式に現在の対応する行をチェックするように見えます。 IE私の式がD12に入力されている場合、行C12でエラーをチェックし、値を返します(またはC12にエラーが含まれている場合は0)。
2つを組み合わせると:
=SUM(IFERROR(SumData,0))
有効な返品値はありません。それは基本的に私に最も近い対応する行を与えます - たとえば:
C D
-----------
12 #NUM!
13 2 =SUM(IFERROR(SumData,0)) = 2 (I would expect this to produce 48)
14 5
15 7
16 #N/A
17 23
18 6
19 5
私は何が間違っているのですか?
解決
=SUM(IF(ISNUMBER(SumData),SumData))
アレイ式として入力されました...つまり、ctrl+shift+Enterを使用して入力するだけでなく、入力します。あなたがそれを正しく行うと、Excelは式{}の周りにカーリーブラケットを置きます。
他のヒント
エラーを含むセルの範囲を追加する傾向がある場合は、この式を使用してみてください。
=SUMIFS(sumrange,criteria range1,"<>"&"#NAME?",criteria range2,"<>"&"#N/A",criteria range3,"<>"&"NUM!")
どのセルにエラーがあるかがわからないため、基準の範囲をSumrangeと同じ範囲を使用することをお勧めします。
残念ながら、これはここにあるように、iferror関数の文書化された機能です。 http://office.microsoft.com/en-us/excel-help/iferror-function-function-ha001231765.aspx.
基本的に、範囲の入力は範囲出力になりません。むしろ、Iferror呼び出しが発生するセルで示される範囲内の位置の出力を取得します。それはかなり直感的ではありません。
1つの解決策は、列を挿入して個々のIferrorの結果を保持し、以下に示すようにそれを合計することです。列dを設定した後、それを隠すだけです。
C D E
--------------------------------------
12 #NUM! =IFERROR(E12, 0) -> 0
13 2 =IFERROR(E13, 0) -> 2 =SUM(E12:E19) -> 48
14 5 =IFERROR(E14, 0) -> 5
15 7 =IFERROR(E15, 0) -> 7
16 #N/A =IFERROR(E16, 0) -> 0
17 23 =IFERROR(E17, 0) -> 23
18 6 =IFERROR(E18, 0) -> 6
19 5 =IFERROR(E19, 0) -> 5
これは私にとってはうまくいきます:
=IF(SUMIFS(RANGE,CRIT-RANGE,CRITCELL)=0,NA(),SUMIFS(RANGE,CRIT-RANGE,CRITCELL))
しかし、表示されるテーブルを使用します。したがって、条件付き形式をプッシュする必要がありました。
セルにエラーが含まれている場合:フォントを作成します{背景と同じ色}
私にとって非常にうまく機能し、実際にデータを表示することなくグラフをうまくプロットします(誰かがセルを選択して値を確認するまで)。