Excel 技巧整理

Topic:

Course:

Date:

Professor/Speaker:

Questions
Notes
VLOOKUP
!!限制!!: 要找的值, 必須是 mapping 表最左邊的第一個欄位; 不是放在第一欄時,建議改用 INDEX + MATCH。

ex. 想用 A 值 -> 透過 mapping表 -> 找到同列的 B 值
VLOOKUP(A值, mapping表, B值在mapping表的欄位順序, 完全吻合)
=VLOOKUP(A2,CompanyInfo!A:I,2,FALSE)



INDEX + MATCH
INDEX(mapping表, MATCH(A值,mapping表的A值單欄,完全吻合),  mapping表的B值順序)
=INDEX(‘mapping’!E:F, MATCH(A1,’mapping’!F:F,0), 1)     -> 在mapping E:F 中 map A=F 後回傳 E

// multiple column matching
=INDEX(表2!C:C, MATCH(1, (表2!A:A=A2)*(表2!B:B=B2), 0))
公式解釋:
  • 表2!A:A=A2 會生成一個布爾陣列,表示表2的A列中哪些值等於表1的A2。
  • 表2!B:B=B2 會生成另一個布爾陣列,表示表2的B列中哪些值等於表1的B2。
  • (表2!A:A=A2)*(表2!B:B=B2) 會將兩個布爾陣列相乘,結果是一個新的布爾陣列,只有當兩個條件都滿足時,對應位置的值才是1,否則為0。
  • MATCH(1, (表2!A:A=A2)*(表2!B:B=B2), 0) 會在這個布爾陣列中找到值為1的位置,這就是表2中符合兩個條件的行號。
  • INDEX(表2!C:C, MATCH(1, (表2!A:A=A2)*(表2!B:B=B2), 0)) 會在表2的C列中,根據找到的行號返回對應的值。
GROUP BY
// 2 columns
=SUMIFS(Sheet1!C:C, Sheet1!A:A, Sheet2!A1, Sheet1!B:B, Sheet2!B1)
HLOOKUP
水平查找
=COUNTIF(A:A,”<>”)
=COUNTIF(A:A,”*” & F12 & “*”)
有字的
找某單字
Extend Formula multiple lines
1. Ctrl + Shift + (Up / Down),  to select all cells
2. Ctrl + d,  apply(extend formula)
=IF(A2=15, “OK”, “Not OK”)
If the value in cell A2 equals 15, return “OK.” Otherwise, return “Not OK.” (OK)
Unix(ms) to datetime
=(((A1/1000)/60)/60)/24)+DATE(1970,1,1)

Summary

Be the first to comment

Leave a Reply

Your email address will not be published.


*