Daveは、年を1つの基準として使用し、週番号を別の基準として使用するSUMIFS式を作成しようとしています。これにより、たとえば、前年の特定の週のすべての値を合計できます。週番号の基準は、現在の日付が含まれる週番号に基づく必要があります。したがって、今日が3週以内の場合、数式には、彼が指定した年の1、2、および3週を含める必要があります。デイブはこれを行う方法があると確信していますが、SUMIFSでそれを表現する正しい方法を理解することはできません。

SUMIFSワークシート関数を使用する場合、関数がパラメーターとして何を必要としているかを正確に理解することが重要です。 2つの基準(デイブがやりたいように、年と週の番号)を使用する場合、SUMIFSに基づく式の構文は次のようになります。

=SUMIFS(values_to_sum, years_to_compare, year_criterion, weeks_to_compare, week_criterion)

デイブの説明では、彼が持っているのは一連の日付とそれらの日付に関連する一連の値です。 values_to_sumパラメーターは、明らかにDaveが持っている値からのものですが、years_to_compareとweeks_to_compareは彼のデータには存在しません。したがって、ヘルパー列に作成する必要があります。

列Aにデイブの元の日付が含まれ、列Bにそれらの日付に関連付けられた値が含まれていると仮定します。列Cでは、セルC2で次の数式を使用して、最初のヘルパー列を作成できます。

=YEAR(A2)

これは、行1にデータ列の見出しが含まれていることを前提としています。 2番目のヘルパー列の数式はセルD2に配置されます:

=WEEKNUM(A2)

これらの数式をコピーして、列Aに表示される各日付に関連付けられた年と週の番号を指定します。これらのヘルパー列を配置すると、前述のSUMIFS関数を操作するために必要なすべてのデータが得られます。まだ持っていないのは、値から抽出する年の指標です。これは、セルF2に1年を置くことで簡単に修正できます。これで、要求された式は次のようになります。

=SUMIFS(B:B,C:C,F2,D:D,"<="&WEEKNUM(TODAY()))

この式を前に提供した構文例と比較すると、values_to_sum(B:B)、years_to_compare(C:C)、year_criterion(F2)、weeks_to_compare(D:D)、および最後にweek_criterion。少し説明する必要があるのは、この最後の要素です。次のようになります:

"<="&WEEKNUM(TODAY())

WEEKNUM関数は、今日の日付に適した週番号(この場合)を返すため、「7」のようなものを返す場合があります。したがって、week_criterionは次のようになります。

"<=7"

これは、SUMIFSがデータ内の7以下の週番号のみを考慮することを意味します。

ヘルパー列を削除できるかどうか疑問に思うかもしれません。 SUMIFSではできません。その理由は、関数が比較を行うデータ範囲を予期しており、それらのデータ範囲が列CとDの数式の結果として計算されるためです。

この数式を使用する際の最後の注意点として、週数の計算方法を正確に理解する必要があります。このヒントの例では、列DとSUMIFS式の両方で、最も単純なバージョンのWEEKNUM関数が使用されています。 WEEKNUMで使用して、動作を調整できるパラメーターがあります。場合によっては、代わりにISO週数を計算することもできます。 WEEKNUMおよびISOの週番号の詳細については、次のヒントを参照してください。

http://excelribbon.tips.net/T007804 http://excelribbon.tips.net/T007847

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(12964)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。