4

複雑かもしれないので、背景を説明しましょう。

次のデータを含むスプレッドシートがあります。

  1. 列Hには、1794年から2011年までの日付が含まれています(「H」内には、その日付に存在する各議員の各日付の複数のコピーがあります)
  2. 列Qには、-1から1の範囲のスコアが含まれています。列Hの各日付について、列Qの平均「正」の値を計算し、それを印刷します。

例えば:

1794: Average Positive Value : .65, Average Negative:  -.20
1795: Average Positive Value: .75, Average Negative: -.11

これを行う方法を見つけるために検索してみましたが、関連する検索用語がわかりません。いくつかの支援をいただければ幸いです。

ありがとう!

4

4 に答える 4

5

ここでは、ARRAY数式を使用する簡単な方法を説明します。SNAPSHOTをご覧ください

=IFERROR(AVERAGE(IF(($H$1:$H$7=K10)*($Q$1:$Q$7>0),$Q$1:$Q$7)),"")

CTL + SHIFT+ENTERを使用してこれを入力する必要があります

ここに画像の説明を入力してください

于 2012-04-17T17:57:43.383 に答える
3

配列数式を使用しない解決策は、を使用することSUMPRODUCTです。

=SUMPRODUCT(--(H1:H7=K10),--(Q1:Q7>0),Q1:Q7)/SUMPRODUCT(--(H1:H7=K10),--(Q1:Q7>0))

以下に示すSiddharthの例をSUMPRODUCTで取り除いた。

ここに画像の説明を入力してください

于 2012-04-17T18:53:22.873 に答える
2

これにはSUMIFS/COUNTIFSを使用できるはずです。

正の値の場合:

=sumifs(Q:Q,H:H,1794,Q:Q,">0")/countifs(H:H,1794,Q:Q,">0")

負の値の場合:

=sumifs(Q:Q,H:H,1794,Q:Q,"<0")/countifs(H:H,1794,Q:Q,"<0")
于 2012-04-17T17:58:36.537 に答える
0

これは一種のハックと見なすことができますが、データポイントごとにコピーされたIF式を持ついくつかの非表示の列を使用することもできます。説明する:

IF(Q> 0、Q、0)を持つ別の列Aを追加しますIF(Q> 0、1、0)を持つ別の列Bを追加しますIF(Q <0、Q、0)を持つ別の列Cを追加しますIF(Q <0、1、0)を持つ列D

次に、平均を決定するために、合計値を実際の発生数で割った値になるため、それぞれSUM(A)/ SUM(B)およびSUM(C)/ SUM(D)を実行できます。

于 2012-04-17T16:47:31.643 に答える