5

計算を実行する必要がある別のソースからデータをインポートする Excel スプレッドシートがあります。私が扱う必要があるデータは、名前付きの範囲にあります - それはたまたま C12:C36 の範囲にあります - しかし、それは「SumData」と呼ばれています。

この範囲の値には、現在 #NUM! を含む多くのエラーが含まれています。および #N/A ですが、他のエラーが含まれている可能性があります。これらの値を合計する必要があります。

合計式を行う方法を理解しています:

=SUM(SumData)

または

=SUM(C12:C36)

IFERROR を使用してエラーをチェックすることもできます。

=IFERROR(C12:C36, 0)

しかし、IFERROR は、入力している数式に対応する現在の行をチェックするように見えるだけです。つまり、数式が 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

私は何を間違っていますか?

4

4 に答える 4

8
=SUM(IF(ISNUMBER(SumData),SumData))

配列数式として入力...つまり、Enter だけでなく CTRL+Shift+Enter を使用します。正しく行うと、Excel は数式を中括弧で囲みます。{}

于 2011-01-19T21:30:24.193 に答える
3

エラーを含むセル範囲を追加する傾向がある場合は、次の式を使用してみてください。

=SUMIFS(sumrange,criteria range1,"<>"&"#NAME?",criteria range2,"<>"&"#N/A",criteria range3,"<>"&"NUM!")

どのセルにエラーがあるかわからないため、合計範囲と同じ基準範囲を使用することをお勧めします。

于 2012-11-23T09:14:31.890 に答える
0

Unfortunately, this is the documented functionality of the IFERROR function, as found here: http://office.microsoft.com/en-us/excel-help/iferror-function-HA001231765.aspx.

Essentially, a RANGE input does not result in a RANGE output. Rather, you get the output for the position in the range indicated by the CELL where the IFERROR call happens. It's rather unintuitive.

One solution is to insert a column to hold the individual IFERROR results, and sum over that, as shown below. After you set up column D, just make it hidden.

    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
于 2011-01-19T21:52:55.647 に答える