2017-03-27 24 views
0

このフォーラムに質問を投稿するのは初めてのことです。以前は何度か答えを見つけましたが、私の現在の苦境への解決策を見つけることができませんでした。複数の平均を計算する

私はコールセンターで働き、毎週私は週に何千という呼び出しからデータを分析する必要があります。私はExcel-VBAでプログラミングするのは初めてですが、かなり遠くにできるようになりました。

データはサードパーティのプログラムによって生成され、その形式は判読不能です。これまで私が行ってきたプログラミングの多くは、データをより組織化するためのものでした。さて、もっと分析したいと思います。

データは社員番号で整理されています(順不同)。各従業員は週にいくつかのコールを受け取り、顧客の中にはサーベイを行います。私が望む調査のスコアです。私は各従業員のすべての調査の平均を取って、その平均を各エントリと同じ行に表示したいと考えています。

enter image description here

黄色の強調表示された領域は、私が追加したいものです。何か案は?事前に助けてくれてありがとう!

答えて

1

VBAは不要です。サポートされているバージョンのExcelをお持ちの場合は、AVERAGEIFを使用してください。そうでない場合、以下の式を使用できます。

(単に入力するのではなく)セル編集モードを終了するときにCtrl+Shift+Enterを押して配列式として入力します。

=AVERAGE(IF($A$2:$A$13=A2,$B$2:$B$13)) 

次に、すべての行をコピーダウンします。

+0

これは間違いなく助けになるでしょう!しかし、私が扱っているページは数千行もあります。マクロを使うと、これをもっと速く行うことができます。これまで私がこれまでに持っていたことは次の通りです: 'Range(P2).Value = WorksheetFunction.AverageIf(Range(" B:B ")、" 12345 "、Range(" L:L "))'しかし、エラー: "WorksheetFunctionクラスのAverageIfプロパティを取得できません。 – Frnht451

+0

@ Frnht451 - 私がAverageIFのために提供したリンクを見てください特定のExcelバージョンが必要 –

+0

Excelバージョンが' AverageIf'をサポートしていない場合は@Frnht451 Excel 2007より前)、あなたはいつも 'Application.Evaluate(someFormula)'を使うことができます。 –