Vlookup ,根據關聯字段,合并表格,類似join
需求1:
sheet 1:
user_id, order_no
sheet2:
order_no, payment
現需把數據合并成一個表展示,通過order_no關聯兩個sheet
最終效果是:
sheet1:
user_id, order_no, payment
做法:
sheet1的第三列,名字叫支付方式(payment),在這里的空格輸入程序:
=VLOOKUP(I2,Sheet2!$A$1:$B$4000,2,1)
解釋:
I2(待搜索匹配的數據): 代表sheet1的order_no
Sheet2!$A$1:$C$4000(在哪個范圍搜索匹配): 代表整個sheet2的數據,注意$A$1:$B$4000這里是絕對引用,不是相對引用。
2(匹配后取第幾列的數據): 代表sheet2的第二列,即payment列,意味著匹配后,sheet1的payment就顯示這一列的數據
1(精確or模糊匹配): 1精確,0模糊
這樣就能合并了
注意的地方
- 我們搜索的是sheet1的order_no, 那么搜索的目標范圍,第一列必須就是order_no的數據,否則匹配不上。這里的含義是,你拿你所搜的東西,到我目標范圍的第一列匹配,不是第一列匹配不了。即excel的做法只會搜索第一列,不會跟你全列搜索,這樣效率也低。
- 搜索范圍的絕對應用和相對應用,我一開始用相對引用(直接輸入sheet1:2000),那么后面數據執行函數的時候,會自動變成2:20001, 3:20002。 結果匹配的數據出錯了。 用絕對應用,無論哪個數據執行,都是針對整個搜索訪問,不會移動,這樣沒有出錯。$A$1:$B$4000 這種就是絕對引用
COUNTIFS 應用,聚合統計count\sum,類似group by
需求
sheet1
user_id1, order_1, status=1
user_id1, order_2, status=0
user_id1, order_3, status=1
user_id2, order_10, status=0
user_id2, order_11, status=1
需要在sheet2表統計好用戶分組數據,最后展示為:
user_id1, 訂單總數, status=1的總數
user_id2, 訂單總數, status=1的總數
思路
我一開始想使用vlookup,來達成這個目的,但是搞了很久,都沒搞成,vlookup每次只會搜索一次,然后不會累加
這個思路我覺得還是得梳理一下。
做法:
累計訂單總數=COUNTIF(Sheet1!A:A,A2)
第一個參數:范圍
第二個參數:條件
這里的含義是:A2這個值在sheet1A列里面如果匹配了,則count累加一下行數
計算status=1的總數 =COUNTIFS(Sheet1!A:A,A2,Sheet1!F:F,"=1")
COUNTIFS(范圍1,條件1, 范圍2,條件2)
這里的含義是:
第一個條件:A2這個值在sheet1A列里面匹配
第二個條件:F列里面值=1
符合這兩個條件,才會COUNT計算行數