列 にはA
、 の形式で月のリストがありますYY-MM
。
列にはB
、各月にサイトページを訪問したユニークユーザーのリストがあります。
(2016年11月-2018年11月)
平均して、どの月が最も多くのトラフィックを生成したかを知りたいです。
どのような式を使用できますか?
どうもありがとう。
答え1
私のコメントを詳しく説明すると、
=MAX(B:B)
MAX
列の値が表示されますB
。
=MATCH(MAX(B:B),B:B)
その行を表示しますMAX
。
=INDEX(A:A,MATCH(MAX(B:B),B:B))
A
その行に対応する列の値を返します
答え2
役に立つかもしれないもう 1 つの数式は、AVERAGEIF または AVERAGEIFS です。
私のアプローチでは、配列ではなく配列のような計算を実行する SUMPRODUCT を使用します。
1) 平均表を作成する
私の例では、年に関係なく各月の月番号を E2 から E13 にリストしました。隣の列の F2 に次の数式を使用し、F13 までコピーします。
=IFERROR(SUMPRODUCT((--RIGHT($A$2:$A$11,2)=E2)*$B$2:$B$11)/SUMPRODUCT(--(--RIGHT($A$2:$A$11,2)=E2)),"")
IFERROR 関数は、特定の月に値がない場合に発生する 0 除算エラーを処理するために使用されます。空白ではなく 0 を表示したい場合は、末尾の "" を 0 に変更します。
上記の式は、日付が実際には文字列であるという前提に基づいています。日付が実際に日付である場合は、次の式を使用します。
=IFERROR(SUMPRODUCT((MONTH($A$2:$A$11)=E2)*$B$2:$B$11)/SUMPRODUCT(--(MONTH($A$2:$A$11)=E2),"")
2) 最大平均を求める
以下の例では、I2 に次の数式を使用しました。
=MAX($F$2:$F$13)
3) 対応する月を見つける
J2 では、次の数式を使用してリスト内の最大値の位置を検索しました。最大値が重複している場合や、最大値が同数の場合は、最初の月が返されます。
=MATCH(I2,$F$2:$F$13,0)