Anandには、顧客名(列A)と購入日(列B)で構成される販売情報を含むワークシートがあります。彼は、特定のhttp://calendarcorner.net/[calendar]月内に正確にX回購入した顧客を表示できるように、リストをフィルタリングする必要があります。ここで、Xは1、2などの値です。組み込みのフィルタリングを使用してこれを行う方法であるか、別のアプローチの方が優れています。

この問題に取り組むには、実際にはいくつかの異なる方法があります。

Excelには、結果を導き出すために使用できるさまざまなツールが用意されていますが、ここではそのうちのいくつかにのみ焦点を当てます。どちらのアプローチでも、フィルタリングで使用するヘルパー列が必要です。

最初のアプローチでは、1つのヘルパー列のみを使用します。データが行2で始まり、99行以下であると仮定して、セルC2に次のように入力します。

=COUNTIFS($A$2:$A$100,A2,$B$2:$B$100,">="& DATE(YEAR(B2),MONTH(B2),1),$B$2:$B$100,"<"& DATE(YEAR(B2),MONTH(B2)+1,1))

これは単一の式です。列Bの日付で示された月内に列Aの人が購入した数のカウントを返します。データに必要な数の行に数式をコピーします。データ内のセルを選択した状態で、リボンの[データ]タブを表示し、[並べ替えとフィルター]グループの[フィルター]ツールをクリックします。 Excelは、データの各列の上部にフィルターコントロールを表示します。

[日付]列の上部にあるコントロールをクリックしてフィルタリングパレットを表示し、ターゲットにする月を選択します。 (パレットの下部にある[年]領域で、[すべて選択]チェックボックスをオフにし、年、最後に月を選択します。)ヘルパー列の上部にあるコントロールをクリックして、フィルター処理された売上の数を選択します。リスト。 (図1を参照)

image

図1.フィルタリングされたデータ。

結果には、対象月の各名前が複数回出現することが示されていることに注意してください。したがって、特定の月に3回購入したものを表示することを選択した場合、ターゲット月の任意の名前に対して3行が表示されます。

これは、1か月間の比較的低いXレートで問題ありません。ただし、月に50回購入した人を見たいとすると、すぐに扱いにくくなります。代わりに、フィルタリングされたリスト内の特定の名前の単一のインスタンスに制限する方法が必要です。

これにより、2つのヘルパー列が必要なソリューションが得られます。これをCountとTallyと呼びます。 [カウント]列の最初のセルがC4の場合は、次のようにそのセルに入力します。

=IF(EOMONTH(B4,0)<>EOMONTH($B$1,0),0,IF(A4=A3,C3+1,1))

データに必要な限り、この式をコピーしてください。月と年がセルB1の月と年と一致しない限り、値0を返します。 (セルB1の日付は、ターゲット月内である必要があります。その月内の任意の日付にすることができます。)月と年が一致する場合、その月内の同じ顧客の各販売のカウントが増加します。

Tally列の最初のセルがセルD4の場合、次の数式をそのセルに配置します。

=IF(C4>=C5,C4,0)

この数式も列にコピーします。数式は、すべての顧客の[カウント]列の最大値のみを保持し、他のすべての値を0に設定します。

次に、データ内の任意のセルを選択した状態で、リボンの[データ]タブを表示し、[フィルター]ツールをクリックします。 Excelは、データの各列の上部にフィルターコントロールを表示します。 (図2を参照)

image

図2.データセットの例。

これで、必要な情報を取得する準備が整いました。最初に列A([名前]列)でデータを並べ替え、次に列B([日付]列)でデータを並べ替えるだけです。次に、列D([集計]列)の上部にあるドロップダウンフィルターコントロールを使用して、目的の月に必要な売上数を選択できます(セルB1で指定されていることを忘れないでください)。値1のみを表示するように指定すると、その月に1回だけ購入したすべての人の名前が表示されます。 2を選択すると、表示される名前は2回購入した人などです。

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

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