次の Excel シートがあります:
- 列A: 週番号
- 列B: 日付(タイムシートエントリ)
各週の労働日数を知る必要があります。そのため、週番号ごとの一意の日付エントリの数が必要です。
固定範囲でこれを処理する数式 (配列と非配列の両方) を見つけましたが、結果を別の列 (週番号ごと) に表示したいと思います。
以下のサンプル データセットの結果は次のようになります (コロンはわかりやすくするためのものです)。
14: 2
15: 3
17: 6
20: 2
21: 3
これがソースデータの場合:
14: 4/04/2012
14: 4/04/2012
15: 10/04/2012
15: 10/04/2012
15: 11/04/2012
17: 26/04/2012
17: 26/04/2012
17: 26/04/2012
17: 26/04/2012
17: 27/04/2012
17: 27/04/2012
20: 14/05/2012
20: 14/05/2012
21: 23/05/2012
21: 23/05/2012
21: 25/05/2012
答え1
エントリの数をカウントするには、=countif(A:B,D1)
週番号がセル D1 にあり、エントリのリストが列 A と B にあると仮定して、を使用します。
もう 1 つのオプションは、週番号を行ラベルとして、エントリ数をデータとしてピボット テーブルを作成することです。これにより、すばやく更新できる適切な概要が得られます。
答え2
数式だけですべて実行できます。間接的なアドレス指定が少し必要で、元のデータに沿って 1 つの (わかりやすくするために 2 つにします) 別々の作業列と、結果テーブルに 3 つの追加列が必要です。
実際のデータは、いくつかのヘッダーを可能にするために 3 行目から始まると想定します。;
引数の分離に を使用しますが、これは米国ロケールのデフォルトではありません。日付がソートされているとは思わないこの仮定のもとでは、解決策はより簡単になります。
- セル H2 (入力行数):
=COUNT(A3:A1048576)
- セル C3 (動的検索範囲): なし
- 細胞C4:C1000:
=ADDRESS(ROW(A$3);COLUMN(A$3)) & ":" & ADDRESS(ROW(A3);COLUMN(A3))
- セル D3 (一意):
TRUE
- セルD4:D1000:
=COUNTIF(INDIRECT(C4);A4)=0
- セル E3 (一意のエントリの番号):
1
- セル E4:E1000:
=IF(D4;E3+1;E3)
- セル I2 (見つかったユニーク数):
=OFFSET(E3;H2-1;0)
- セル J2 (曜日範囲):
=ADDRESS(ROW(A3);COLUMN(A3);4) & ":" & ADDRESS(ROW(A3)-1+$H$2;COLUMN(A3);4)
- セル K2 (固有の曜日範囲の数):
=ADDRESS(ROW(E3);COLUMN(E3);4) & ":" & ADDRESS(ROW(E3)-1+$H$2;COLUMN(E3);4)
- セル H5 (カウンター):
1
- セル H6:H100
=H5+1
- セル I5:I100 (位置):
=MATCH(H5;INDIRECT($K$2);0)
- セル J5:J100 (曜日):
=OFFSET($A$3;I5-1;0)
- セル K5:K100 (カウント):
=COUNTIF(INDIRECT($J$2);J5)
最終結果は K5:K100 の範囲になります。
間接的な数式を使用していますが、任意の場所に列を挿入するか、列 F:F または G:G を削除しても、このソリューションは機能します。データのある列を一緒に保つ限り、セルを移動することもできます。
すべてを 1 つのワークシートに保持することが重要です。テーブル H4:K100 を別のワークシートに移動する必要がある場合は、セル J2 と K2 のアドレスを変更してワークシート名を含める必要があります。
答え3
ピボットテーブルは最も簡単かもしれません