[英]Find a MAX and SUM a variable number of columns in Excel without Macros
我在Excel中有一張表:
A B C D
Day1 Day2 Day3
1 Ron 3 2 2
2 Don 4 2 1
3 Ton 1 5 2
在另一個工作表上,我需要生成一個類型的表(不使用宏):
A B C D
Ron Don Ton
1 Ron - - -
2 Don 8 - -
3 Ton 10 11 -
該值是每一天每一對值的最大值,是整天的總和。 因此,如果僅使用3個名稱和日期,則只需將下面的公式與VLOOKUP一起使用,即可查看特定日期每個名稱的值,然后每天復制/粘貼。 (請注意,實際上我的項目並不大,所以當我發布此問題時,我本可以解決這個問題,但我確實想學習如何以更智能的方式進行此操作)。
=SUM(MAX( VLOOKUP(Table2!$A2,Table1!$A:$D,2,FALSE), VLOOKUP(Table2!B$1,Table1!$A:$D,2,FALSE)), and so on Day2, Day3...
我嘗試了以下方法:
{=SUM(MAX(VLOOKUP(Table2!$A2,Table1!$A:$D,{2,3,4},FALSE),VLOOKUP(Table2!D$1,Table1!$A:$D,{2,3,4},FALSE)))}
但是,顯然VLOOKUP無法返回數組(而INDEX MATCH也不能)。
任何幫助將非常感激。
L42是正確的-當查找值是范圍或數組但用數組代替列索引號時, VLOOKUP
很難返回數組,它不會返回數組
要看到,只需將一個VLOOKUP
放在一個單元格中,例如
=VLOOKUP($A2,Table1!$A:$D,{2,3,4},0)
然后選擇單元格,按F2選擇公式,然后按F9查看結果,您將得到類似={3,2,2}
的結果
您的公式存在的問題是, MAX
只會采用兩個VLOOKUP
返回的六個值中的MAX
,而不會比較兩個數組
為此,您可以使用以下形式的公式:
=SUM(IF(array1>array2,array1,array2))
它將比較兩個數組並求和每個位置的最大值,對於您的設置,這將是表2 B2中的公式
=IF($A2=B$1,"-",SUM(IF(VLOOKUP($A2,Table1!$A:$D,{2,3,4},0)>VLOOKUP(B$1,Table1!$A:$D,{2,3,4},0),VLOOKUP($A2,Table1!$A:$D,{2,3,4},0),VLOOKUP(B$1,Table1!$A:$D,{2,3,4},0))))
使用CTRL + SHIFT + ENTER進行確認 ,然后上下復制
如果您有更多的列,那么為避免使用{2,3,4,5,6,7,8,9,10 ......等},您可以使用INDEX/MATCH
而不是VLOOKUP
這樣
=INDEX(Table1!$B:$D,MATCH($A2,Table1!$A:$A,0),0)
注意:此處的INDEX
返回范圍 (不是array )。 MATCH
函數確定行號和零,因為column參數表示您將返回整行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.