回覆列表
  • 1 # 使用者7924182412928

    我進一步發掘需求:將相同的門店放到一起,評價也相同的進行重複計數,以便綜合比較。

    隱身需求:幹嘛不對評價星等求平均值?不是更加直觀麼?操作上也沒什麼難度。

    把這兩個需求一併實現,採用透視表明顯是最優策略,我們在這裡將門店按照名稱順序排列(透視表預設),統計每種評級出現的次數,並計算平均評級,效果如下:

    下面是步驟詳解:

    1、給表格增加表頭,並增加數字化分析輔助列。

    D2輸入公式=IF(C2="一星",1,IF(C2="二星",2,IF(C2="三星",3,IF(C2="四星",4,IF(C2="五星",5,"無效資料")))))

    主要是將星等轉化成數字以便統計平均數,請注意當出現無效資料時,表明出現數據出現了bug,要對資料進行核實修正,或者刪掉這一行,否則後面會進行不下去。也可以用lookup函式實現,不贅述。然後填充公式到整列,處理後表格如下:

    2、在2010版office套件中,插入-資料透視表

    3、系統自動生成了新的工作簿,包含一個選定了區域的空透視表。將店名和評級拖動到行標籤的方框,將評級和數字化分析拖到數值的方框。

    4、可以看到,評級列因為有文字,統計的時候自動按照計數統計;分析列因為是純數字,自動按求和統計。注意,我們這裡不是要求和,需要切換成平均值。點選數值方框裡的求和項資料標籤,在彈出選單中選擇“值欄位設定”,進行設定。

    5、這就得到了統計表格,數字的有效位數顯然過多,可以透過數字格式調整。

    6、到這裡事實上已經完成了,你可以對格式進行修改,讓表格更美觀清晰。例如,在資料透視表工具-設計-報表佈局裡選擇表格形式;表頭內容可以直接編輯修改,單元格的格式也可以隨意調整。但是,除了表頭之外的區域的資料不能直接修改。下面是我隨手修改的格式,題主可以按照自己的喜好設定:

    ————分割線,以下是原答案————

    首先我認為你這不僅僅是勝古店有兩個一星的問題,如果勝古店有一個一星和一個三星,你打算怎麼處理它?就讓它出現兩次麼?那它到底是一星還是三星?另外,你還要對資料質量進行稽核,如果對方提供過來的資料中同一個門店的名稱、分級有細微的不一致,同樣可能逃過篩選,比如不必要的空格、大小寫等,需要先進行處理。我這裡先按照你題目中說的,資料質量相當高,只處理兩列都重複的內容。

    1、countif函式可以對錶格中出現某特定內容的個數進行統計,由於你有兩列函式,可以使用countifs函式,公式:=countifs(A:A,A1,B:B,B1)。這樣,你就可以知道每行內容出現了幾次,並在此基礎上透過資料-篩選進行進一步處理。

    2、sumproduct函式是多項計算的法寶,原理略複雜,但可以解決絕大多數統計問題,功能遠超count/sum系列的其他函式。等效公式:=sumproduct(--(A:A=A1)*(B:B=B1)))。其思路是先對A列進行判定篩選出A列重複的內容,然後篩選出B列重複的內容。二者的結果都是邏輯數(true和false),兩個ture的乘積是與運算,結果也是true,否則返回false;返回結果是邏輯值,邏輯值相加是或運算,因而無法進行正確的累加,對其進行兩次負運算,系統將其自動轉化為數值1(true)或0(false),然後對返回結果進行累加。顯然,這個函式更廣泛的作用是進行多列篩選加權求和,洞悉原理後使用極其靈活、方便。

    使用函式來判斷重複的最大問題是你要進行再次人工操作,先根據函式判定的人工結果篩選出有重複項的行,接下來還要人工把重複的行去掉,最關鍵的是不能忘記留一行,別都刪了。這樣並不能起到用函式來降低工作量並保證正確率的效果。當然你可以設計一個函式,內容出現第一次的時候返回1,出現第二次的時候返回2,這是完全可行的,不過編寫起來就複雜的多了,一般來說沒有這樣的必要,我們有更好的辦法,那就是使用更直接的刪除重複項功能,2010版中的操作流程是選中區域-資料-刪除重複項,然後對要篩選重複的列進行勾選。

    4、透視表也可實現這樣的功能,並且更加強大。選定區域-插入-資料透視表,然後對錶格內容進行設定。有時透視表插入無效,主要原因是你選定的區域必須有表頭、表頭只能有一行且內容不能重複或為空,選定區域不能有合併單元格,需要對錶格進行預處理。透視表用於對資料進行復雜的篩選統計,操作簡單,建議好好研究,受益無窮。

    5、宏程式碼和VBA程式碼。這麼低階的問題一般不需要用到程式碼工具,以上幾種辦法已經夠了,就不細說了。excel幾乎沒有一串程式碼不能解決的問題,如果有,那就兩串。

  • 中秋節和大豐收的關聯?
  • 手錶帶上的汗漬怎樣驅除?