最后6个唯一日期来自数组,其中包含excel中的相应列

时间:2018-04-20 23:22:19

标签: excel vba excel-vba excel-formula

大家好日子。提前感谢您回答我的问题。 请,我希望并且能够解决这个问题。我搜索了论坛,但没有明确的解决方案。

我有一张带有A,B,C,D和E列的excel表。列A持有日期信息,B持有主队,C持有客队,D持有进球得分,E持有进球得分。以下示例

    DATE HOME AWAY FTHG FTAG

23-11-2017  Man City       Arsenal   3     2
23-11-2018  Sunderland     West Ham  3     2
03-12-2017  Man United     Man City  2     2
23-12-2017  Man City       Arsenal   1     2
15-02-2018  Sunderland     Man City  3     2
20-02-2018  Sunderland     Chelsea   3     2
23-02-2018  Brighton       Man City  3     2
03-04-2018  Man City       Arsenal   3     5
23-03-2018  Everton        Burnley   1     1

我想知道曼城与他们相应的对手和比分所进行的最后六场比赛。该公式应返回以下内容

    DATE HOME AWAY FTHG FTAG

23-11-2017  Man City       Arsenal   3     2
03-12-2017  Man United     Man City  2     2
23-12-2017  Man City       Arsenal   1     2
15-02-2018  Sunderland     Man City  3     2
23-02-2018  Brighton       Man City  3     2
03-04-2018  Man City       Arsenal   3     5


我设法使用 '=VLOOKUP(LARGE(A:A,1),A:E,1,0) IN CELL(1:7)' 示例



    'Cell(1,7)=VLOOKUP(LARGE(A:A,1),A:E,ROW()-1,0)'
    'Cell(1,8)=VLOOKUP(LARGE(A:A,2),A:E,ROW()-1,0)'
    'Cell(1,9)=VLOOKUP(LARGE(A:A,3),A:E,ROW()-1,0)'
    'Cell(1,10)=VLOOKUP(LARGE(A:A,4),A:E,ROW()-1,0)'
    'Cell(1,11)=VLOOKUP(LARGE(A:A,5),A:E,ROW()-1,0)'
    'Cell(1,12)=VLOOKUP(LARGE(A:A,6),A:E,ROW()-1,0)'

但问题是当它遇到任何人选择相同的日期时,特别是最后一个。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

除非您将 k 参数保留为1,否则您不需要LARGE。您需要的是找到尚未收集的最大值(即日期)。数组公式MAX或LARGE或xl2010的AGGREGATE可以实现此目的。

在G2中使用其中一个:

'array formula with CSE
=MAX(IF(ISNA(MATCH(A$2:A$10, G$1:G1, 0)), A$2:A$10))
=LARGE(IF(ISNA(MATCH(A$2:A$10, G$1:G1, 0)), A$2:A$10), 1)
'standard formula without CSE
=AGGREGATE(14, 6, (A$2:A$10)/(G$1:G1<>A$2:A$10), 1)

获得6个唯一日期后,VLOOKUP可以返回剩余的信息。

enter image description here