在Sheet1中显示Excel中从Sheet2到Sheetn的最新条目

时间:2018-07-02 19:41:56

标签: excel excel-vba vba

我有一个Excel文件,该文件具有任意张数。从Sheet2到Sheetn,结构相同:

|   A  |  B   |   C   |   D  | 
------------------------------
| Date | Name | Value | Type |
| Date | Name | Value | Type |

但是,这些行没有按日期排序,因此不能保证每张纸的第一行都是最新的日期。

第一张纸每张纸都有一行,应该对其进行更新以在每张纸中包括最新的条目。

例如,如果我们有4个工作表,则工作表1将具有4-1 = 3行,这些行将是:具有工作表2的最新日期的行,具有工作表3的最新日期的行以及该行在工作表4上具有最新日期。

一个文件等于一千个单词,因此您可以download the excel file here并查看我的需要。

1 个答案:

答案 0 :(得分:0)

我实际上已经找到了解决方案。我猜它远非最好的一个,但由于我绝不是一个出色的人,因此它对我来说足够了。

对于只需要在不学习Excel的情况下实现此目标的其他非Excel人员,这是我的操作方法:

=INDEX(MySheetName!$A$2:$G$10000,(MATCH(MAX(MySheetName!$C:$C),MySheetName!$C:$C,0)-1),COLUMNS(MySheetName!$A$1:A1))

将“ MySheetName”的4次出现替换为每个excel工作表的实际工作表名称。 将INDEX上的“ A到G”列替换为要检索的列。 使用其MAX()将MATCH上的C:C列替换为您要用于检索行号的列 请记住,将公式跨到多列,与您所引用工作表的最大列一样多。

我现在要改进的是使其也能够跨越多行,这对我来说意味着它将自动引用下一个excel工作表的所有列。目前,需要手动替换“ MySheetName”。 “ 10000”看起来也很糟糕,但是我不知道如何确保它在所有行上都能获得Max()。我永远不会在每张纸上填充超过100行,因此10000似乎很安全。