【问题标题】:Pulling data from big excel datatable with incremental column in Vlookup or IndexMatch without zeros从大 excel 数据表中提取数据,在 Vlookup 或索引匹配中使用增量列,不带零
【发布时间】:2023-04-01 04:10:02
【问题描述】:

我正在尝试一段时间来提取上次导入日期和前一个日期的大约 160 个指标的数据,以便我可以自动化一些东西。

这就是我的数据表的样子:

我使用 MAX 函数从表中获取最新日期,而前一个日期与最后一个日期相距 7 天。

我想获取这两个日期的指标,一直到数据表的末尾,不显示任何零(在条目为空白的地方留空)

问题是:1-数据被格式化为数据表,因为很多图表都是自动从它提供的。由于它是一个数据表,它不会从 vlookup 的正常单元格引用中提取正确的值。 2-因为它是一个数据表,所以很难在 vlookup 的列中强制执行 +1 增量,这样我就不必手动输入 165 个公式。 3-我真的想要一个公式,当条目为空白时不给零,但也返回空白。

我试过了:

    =VLOOKUP($C$3,$C$13:$FH$200,D:D, FALSE)
    =VLOOKUP($C$3,Table1[#All],2, FALSE)
    =INDEX(Table1[Date],MATCH($C$2,Table1[BOADPMOUS106]))

还有很多变体。他们都没有很好的工作或能够被拉到桌子的尽头。当然,他们返回 0 并带有空白条目。

有没有人想办法解决这个问题?

【问题讨论】:

    标签: excel excel-formula vlookup


    【解决方案1】:

    如果您要返回基于文本的结果,您可以将零长度字符串附加到VLOOKUP function。

    =VLOOKUP($C$3,Table1[#All],2, FALSE)&""
    

    这不会改变返回的字符串,但当返回值为空白时不会显示零。

    如果要返回数字或日期,则必须检查返回值是否为空。

    =IF(LEN(VLOOKUP($C$3,Table1[#All],2, FALSE)), VLOOKUP($C$3,Table1[#All],2, FALSE), "")
    

    不幸的是,这是一个双重查找,就像我们在 IFERROR function 出现之前必须做的那样检查错误,但到目前为止,还没有本机工作表 IFBLANK 函数。

    可以轻松编写 UDF IFBLANK。

    【讨论】:

    • 嗨 Jeeped,我正在返回数字和百分比数字。所以你给出的第二个解决方案解决了空白结果的问题。但是,当我将其一直拉到右侧时,参考列 2 不会增加。有没有办法解决这个问题,所以我不必手动更改这两个数字引用列的 160 列乘以 2 两个日期?学会这样做也会有很大的不同。
    • 将两个地方的 2 更改为 COLUMN(B:B)。
    • 谢谢吉普德。当我尝试这样做之前,我一直在添加 D 列(因为它在工作表的 D 列中,但它实际上在数据表的 B 列中)
    【解决方案2】:

    如果您确定只返回数字或空单元格,这将防止双重查找:

    =IFERROR(VALUE(A1&" "),"")
    

    在您的情况下,将A1 替换为VLOOKUP($C$3,Table1[#All],2, FALSE)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 2017-06-26
      • 2021-10-05
      • 2023-03-13
      • 1970-01-01
      相关资源
      最近更新 更多