[英]VLOOKUP average a range of cells
我有一個標准的VLOOKUP公式
=VLOOKUP($G28,'Analysis 1'!$A$2:$CR$32,$M28+$M28,TRUE)
我將如何修改它,以便我不只是返回答案,我希望它平均3個單元的結果,即VLOOKUP上方的單元格,VLOOKUP下方的單元格和VLOOKUP的單元格?
如果我可以指定要平均的vlookup兩側的像元數,那也很好,因此在上述情況下為1。
是的,您需要使用MATCH。
我認為最簡單的方法是使用OFFSET函數:
=AVERAGE(OFFSET(B1,MATCH(E2,A2:A11,0)-D2,0,D2*2+1))
查找值在E2中,要包含任一側的像元數在D2中。 如果D2包含零,則只獲得與鍵(25)對應的值。 查找和返回列不必在一起。
該示例包括B列中包含9、16、25、36和49的單元格,並給出答案27。
對於單元格距離范圍的末尾或起點太近而無法在時間允許的情況下給出正確答案的情況,我可能應該添加錯誤處理。
這是錯誤處理的公式:
=IFERROR(
IF(OR((MATCH(E2,A2:A11,0)-D2)<1,(MATCH(E2,A2:A11,0)+D2)>ROWS(B2:B11)),
"Out of range",
AVERAGE(OFFSET(B1,MATCH(E2,A2:A11,0)-D2,0,D2*2+1))),
"Not found")
這是將公式修改為在范圍的末端“漸縮”的公式,因此,任一側的單元格數目最多為n,其中n是匹配單元格與范圍末端之間的單元格數目:
=IFERROR(
AVERAGE(OFFSET(B$1,
MATCH(E2,A$2:A$11,0)-MIN(MATCH(E2,A$2:A$11,0)-1,ROWS(A$2:A$11)-MATCH(E2,A$2:A$11,0),D$2),0,
MIN(MATCH(E2,A$2:A$11,0)-1,ROWS(A$2:A$11)-MATCH(E2,A$2:A$11,0),D$2)*2+1)),
"Not found")
更新資料
INDEX可能比OFFSET更可取,因為它不易揮發。
這是使用INDEX的兩個公式:
=IFERROR(
IF(OR((MATCH(E2,A2:A11,0)-D2)<1,(MATCH(E2,A2:A11,0)+D2)>ROWS(B2:B11)),
"Out of range",
AVERAGE(INDEX(B2:B11,MATCH(E2,A2:A11,0)-D2):INDEX(B2:B11,MATCH(E2,A2:A11,0)+D2) )),
"Not found")
和
=IFERROR(
AVERAGE(
INDEX(B$2:B$11,MATCH(E2,A$2:A$11,0)-MIN(MATCH(E2,A$2:A$11,0)-1,ROWS(A$2:A$11)-MATCH(E2,A$2:A$11,0),D$2)):
INDEX(B$2:B$11,MATCH(E2,A$2:A$11,0)+MIN(MATCH(E2,A$2:A$11,0)-1,ROWS(A$2:A$11)-MATCH(E2,A$2:A$11,0),D$2))),
"Not found")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.