
Excel のシリアル日付を表す値がいくつか含まれたテーブルがあります。フィールドを比較しようとして何度も失敗した後、現在はカレンダーの日付ではなくシリアル日付を比較するアプローチをとっています。数式を使用して、データを日別に集計しようとしています。
考慮する:
41021 some data
41021.625 some data
41021.63542 some data
41022 some data
41022.26042 some data
41022.91667 some data
41023 some data
41023.375 some data
望ましい結果:
41021 sum of 41021, 41021.625 and 41021.63542 data
41022 sum of 41022, 41022.26042 and 41022.91667 data
41023 sum of 41023 and 41023.375 data
本質的には、SerialDate.SerialTime のすべてのインスタンスについて、その日付の *.SerialTime に関係なく、SerialDate.* に関連付けられたデータ値を合計します。
追加の日付列を作成してフォーマットすることでこれを行う方法はわかりますが、=TEXT(<DateField>,"mm/dd/yyyy")
数式でこの「変換」を処理できるソリューションを探しています。例:SUMIF((TEXT(<dateRange>,"yy/mm/dd"),=(TEXT(<dateField,"yy/mm/dd")),<dataRange>
意味が分かりますか?誰か何かアイデアはありますか?
ありがとう
答え1
シリアル時刻が列Aにあり、関連データが列Bにあると仮定すると、次の数式は
=IF(INT($A1)=$A1,SUMIFS($B:$B,$A:$A,">="&$A1,$A:$A,"<"$A1+1),"")
C1 に入力して列に拡張すると、列 C の最初の整数時間値の後ろに合計が表示されます。必要なのがこれだけであれば、完了です。
しかし、間に空白行を入れずに合計を上下に並べる必要がある場合は、配列数式参照ラベル用の追加列を挿入します。列 C で、データを含む行のセルを選択し (つまり、データが行 1 から 100 まで入力されている場合は、C1 から C100 を選択します)、数式バーに次の数式を挿入します (セルに直接入力しないでください)。
=IFERROR(SMALL(IF(INT($A1:$A100)=$A1:$A100,$A1:$A100,""),ROW()),"")
動作させるには、配列数式として保存する必要があることに注意してください。数式入力をCtrl+Shift+Enter(ではなくEnter、正しく入力した場合、数式は中括弧で囲まれて表示されます) で確定します。また、数式は空のセルに 0 を返すため、必要に応じて範囲を調整する必要があります。最後に、配列数式は大規模なデータセットではかなり遅くなることに注意してください。
完了したら、追加できます
=IF($C1<>"",SUMIFS($B:$B,$A:$A,">="&$A1,$A:$A,"<"$A1+1),"")
列 D に追加すると次のようになります。
答え2
日ごとにデータを要約する場合(または日別の小計を取得する場合)、この配列数式を試すことができます。数式バーにこれを入力し、Ctrl+ Shift+を押しますEnter。
=SUM((INT(datetimes)=D3)*somedata)
どこ
datetimes
シリアル日付を、またはGeneral
形式mm/dd/yyyy h:mm
で入力します。somedata
加算する数字がいくつか含まれています(下の例ではB2:B25)
Excel では、日付は整数 (シリアル値) として、時間は小数 (24 時間の小数) として認識されます。たとえば、06/01/2012 3:00:00 PM
は と等しくなります41061.625
(セルの書式を に変更すると、このようになりますGeneral
)。整数は日付を表し、 はまたはまたは を0.625
表します。DATE セグメントを抽出するには、 を使用できます。3:00 pm
15:00
15/24
INT(A1)
答え3
これを行う最も簡単な方法は、Excel (2007/2010) に組み込まれているテーブル機能とピボット テーブル機能を使用することです。
- データから Excel テーブルを作成します。
- Excel の「INT」関数を使用して日付のヘルパー列を作成します。これにより、すべての値が適切な日 (日付/時刻フィールドの整数部分) にロールダウンされます。フィールドの時刻値のヘルパー列も簡単に作成できます。
- データ テーブルをソースとして使用してピボット テーブルを作成します。
- 行ラベルをヘルパー日付として設定し、ピボット値をデータ ポイントとして設定します (列ラベルとして時間フィールドを追加することもできます)。
その後、テーブルを更新するたびに、ピボット テーブルを更新して現在の小計を表示できます。さらに、他の集計関数 (最小、最大、平均) を選択したり、データ テーブルの値に影響を与えずにピボット テーブルのラベルを従来の日付形式でフォーマットしたりすることもできます。
Excel 2003 を使用している場合は、テーブルの代わりにリスト関数を使用して同じことを実現できます。
Excel 2010 の例
Excel 2003の例