現在正值期末,教師通常會做一些課程回饋的問卷調查,因為多個班級共用一個Google表單,所以只會得到一個試算表結果,如何將數據轉換成各個班級的各個題目平均分數?

如下圖,很多學生填答,在此只留下班級資料(刪附學生個人資料),想要以此得到一個班級和題目的對照平均分數。

Excel-由Google表單填答結果計算各個班級在各個題目的平圴(INDIRECT,SUMPRODUCT)

【公式設計與解析】

這個工作看起來很複雜,只要用對方法,公式處理起來還算簡單。

在此,將題目轉換成甲,乙,丙,丁,戊,己庚,辛,壬,癸,班級為201,202,203,204,205,206。

Excel-由Google表單填答結果計算各個班級在各個題目的平圴(INDIRECT,SUMPRODUCT)

首先,選取所有的資料來源,按 Ctrl+Shift+F3 鍵,勾選:頂端列。

定義名稱:班級,甲,乙,丙,丁,戊,己庚,辛,壬,癸。

Excel-由Google表單填答結果計算各個班級在各個題目的平圴(INDIRECT,SUMPRODUCT)

接著,輸入公式,儲存格N2:

=SUMPRODUCT(INDIRECT($M2)*(班級=N$1))/SUMPRODUCT((班級=N$1)*1)

然後,複製儲存格N2,貼至儲存格N2:S11。

其中公式:

(1) INDIRECT($M2)

因為題目已經轉換為:甲,乙,丙,丁,戊,己庚,辛,壬,癸,

而甲,乙,丙,丁,戊,己庚,辛,壬,癸也已經定義了各個題目數據的儲存格範圍。

透過 INDIRECT 函數就可以將儲存格M2內容的字串轉換為儲存格範圍。

(2) SUMPRODUCT(INDIRECT($M2)*(班級=N$1))

在 SUMPRODUCT 函數中設定條件:班級=N$1,要找出符合班級名稱和儲存格N1相同者,再與第(1)式的傳回值相乘。

結果就會取得和儲存格N1相同的班級數據的總和。

(3) SUMPRODUCT((班級=N$1)*1)

用以取得和儲存格N1相同的班級數量。因為條件式會傳回 TRUE/FALSE 陣列,在經過「*1」運算後,會得到 1/0 的陣列。加總 1/0 之後就可得合於條件的數量。

(4) 第(2)式/第(3)式

用以求得平均數。將第(2)式所傳回相同的班級數據的總和,再除以第(3)式傳回相同班級的數量,即可求得平均數。

學不完.教不停.用不盡文章列表

arrow
arrow
    文章標籤
    Excel INDIRECT SUMPRODUCT
    全站熱搜
    創作者介紹
    創作者 vincent 的頭像
    vincent

    學不完.教不停.用不盡

    vincent 發表在 痞客邦 留言(2) 人氣()