0

処理されたレコードの数と、レコードが処理された日付を表す 2 つの列を含むスプレッドシートがあります。場合によっては、レコードを複数のバッチで処理できるため、ドキュメントは次のようになります。

33 2009
年 4 月 1 日 22 2009年 4 月 1
日 12 2009 年 4 月 2 日
13 2009年 4 月 4 日
36 2009 年 4 月 4 日

日付を含む新しい列のセットを追加しようとしており、その日付のレコードの総数が自動的に表示されます。

2009 年 4 月 1 日 55 2009 年4 月 2
日 12
2009 年 4 月 3 日 0 2009 年 4 月 4 日
49

私はこれをアルゴリズム的に行う方法を知っており、おそらく Excel の外部でスプレッドシートを操作することもできますが、実際のスプレッドシートでこれを実行しようとしており、それをどのようにやってのけるかについて少し当惑しています。

何か案は?

ありがとう!IVR アベンジャー

4

3 に答える 3

2

ピボットテーブルの使用をお勧めします。日付を行領域に入れ、「合計」レコードをデータ領域に入れます。列領域には何もありません。

ピボットテーブルは、存在する日付のみを表示するため、数式ソリューションよりも動的になります。

于 2009-04-20T16:27:42.090 に答える
0

日付が列 B にあり、累積される数値が A にあると仮定すると、次のようなことを試すことができます。

  | A  |   B      |    C                D
1 | 33 | 4/1/2009 | =MIN(B:B) | {=SUM(IF(B1:B5=C1,A1:A5,0))} |
2 | 22 | 4/1/2009 | =C1+1     | {=SUM(IF(B1:B5=C2,A1:A5,0))} |
3 | 12 | 4/2/2009 | =C2+1     | {=SUM(IF(B1:B5=C3,A1:A5,0))} |
4 | 13 | 4/4/2009 | =C3+1     | {=SUM(IF(B1:B5=C4,A1:A5,0))} |
5 | 36 | 4/4/2009 | =C4+1     | {=SUM(IF(B1:B5=C5,A1:A5,0))} |

{} は、SUMIF() よりも高速なヒープである重要な量のデータの配列数式 (Control-Shift-Enter を使用して入力) を示していることに注意してください。

A1:A5 および B1:B5 パーツの動的な名前を次のように定義する傾向があります。

=OFFSET(A1,0,0,COUNT(A:A),1)

式を修正し続ける必要がないように。

手動の要素はまだあります。たとえば、余分な日付のために新しい行を追加します。これは、小さな VBA に適した場所かもしれません。または、たとえば、過去 90 日間の合計を表示することができれば、使用する行数を修正できます。

于 2009-04-20T15:33:55.307 に答える