【问题标题】:How can I vlookup across rows with title rows as criteria in Excel/VBA?如何在 Excel/VBA 中以标题行作为标准的行进行 vlookup?
【发布时间】:2019-03-14 14:46:19
【问题描述】:

Example

数据:

输出:

您好,请看附件。我有按 ID 列和标题中的日期行组织的财务数据表。

在表 1 上,我想在表 1 单元格 B1 和 D1 中指定一个日期范围,以计算利润率。例如,给定下面的图像,我需要输出 B3 中的公式,该公式可以将利润值从 2/1 加到 2/6 (34)。

谁能指出我正确的方向,就 VBA 甚至一些工作表 excel 公式而言?感谢任何反馈

【问题讨论】:

  • INDEX MATCH OFFSET INDIRECT 也值得一读。
  • @Nathan_Sav, HLOOKUP 正如@cybernetic.nomad 指出的那样应该足够了。但是,是的,显然知道这些并没有什么坏处
  • 别担心,我更喜欢INDEX(range,match,match) 方法而不是查找灵活性。
  • @cybernetic.nomad 我对 Hlookup 不太熟悉;我看到它如何在给定日期作为输入的情况下查找行值,但是我如何将它用于一系列日期和行值范围? IE。如果日期范围是 2/1 到 2/6,我将如何对相应的利润表行求和以在单元格 B3 中返回 (4+6+7+10+2+5) 34?

标签: excel vba match vlookup transpose


【解决方案1】:

您可以使用 MATCH 查找 ID 和日期,以及 INDEX 中的系列以将所需范围返回到 SUM

=SUM( INDEX( Profit, IDRow, FromDateColumn) : INDEX( Profit, IDRow, ToDateColumn))

其中FromDateColumnToDateColumnIDRowMATCH 一起发现

=SUM(
 INDEX(Profit!$1:$1048576, MATCH($A$3,Profit!$A:$A,0), MATCH($B$1,Profit!$1:$1,0)) :
 INDEX(Profit!$1:$1048576, MATCH($A$3,Profit!$A:$A,0), MATCH($D$1,Profit!$1:$1,0)) )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    相关资源
    最近更新 更多