【问题标题】:Excel Dynamic List with no blanks没有空格的 Excel 动态列表
【发布时间】:2019-04-13 14:41:18
【问题描述】:

例如,我有一个产品列表 (1-10) 和一个客户的发票。 我想根据公式显示发票上正在购买哪些产品。 唯一的问题是客户可能不会购买所有产品。例如,他们可以购买产品 1、5、6,我想在第一行显示 1,在第二行显示 5,在第三行显示 6(中间没有空格)。

根据this 帖子,我一直在摆弄索引和匹配,但我仍然得到空白行。我知道我可以遍历发票并删除空白行,但我不想这样做(可重用性问题)。

我相信 Helper 列可以在这里工作。我已经使用 Helper 列很长时间了(没有意识到它们有一个术语 :)) 我经常连接单元格来做 vlookups 等。

帮助列在这里有什么帮助?我会怎么做?我该怎么做?

以下是产品列表:

Products

下面是客户想要的产品列表(空白行是他们没有订购的产品(产品 2 - 4,7-10): Ordered Products

【问题讨论】:

  • 你愿意使用 VBA 吗?
  • 您的起始数据是什么样的?这将部分决定您的选择。并请分享您当前的公式尝试。
  • 绝对开放到VBA,只是不删除行:)
  • 公式:=IFERROR(INDEX('Jan Calcs'!D$22:D$31,MATCH(ROW()-ROW($D$4),$A$5:$A$14,0)) ,"") Jan Calcs D22:D31 包含 1,"","","","",5,6 A5:A14 包含:1,2,3,4,5,6,7,8,9, 10
  • 从您的屏幕截图中并不清楚您的数据是如何排列的,或者您的公式在哪里......

标签: excel list dynamic


【解决方案1】:

好的,所以不完全是解决方案,但它有效: 我基本上列出了所有值(空白和所有),在打印之前,我检查了该单元格是否为空白,如果为空白则隐藏该行。

For x = 1 To 300
  If Cells(x, 1) = "1" Then
    For z = x To x + 29
      If Cells(z, 2).Value = "" Then Rows(z).EntireRow.Hidden = True
    Next
  End If
Next

感谢大家的关注:)

【讨论】:

    猜你喜欢
    • 2016-07-08
    • 1970-01-01
    • 2020-05-01
    • 2015-11-08
    • 2015-04-16
    • 2013-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多