簡體   English   中英

在沒有宏的Excel中查找MAX和SUM可變數量的列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM