【问题标题】:How to dynamically select a range of cells in excel?如何在excel中动态选择一系列单元格?
【发布时间】:2017-11-22 19:40:31
【问题描述】:

我想选择在 Test_start 之后开始并在 Test_stop 之前结束的单元格范围。在显示的示例中,要选择的范围是 A4:A6, 我手动选择了范围,发现总数应该是 6。

数据将保留在同一列中,并且始终以 Test_start 开头并以 Test_stop 结尾,但它可以从任何行开始。

如果有帮助,我每张表只有一个数据集。

我希望使用 Excel 公式而不是 vba 来实现这一点!!。

【问题讨论】:

  • 如果test_xxx 是一个命名范围,只需按ctrl+G 并输入test_start:test_stop

标签: excel excel-formula excel-2010


【解决方案1】:

=MATCH("test_stop";A:A;0)-MATCH("test_start";A:A;0)+1

您可以通过将整数添加到结果中来操作结果/也可以减去它们。

该公式仅适用于一列。

干杯。

【讨论】:

  • 我不关注,你是在建议我做这样的事情 = SUM((MATCH("START",A:A,0)+1):(MATCH("START",A :A,0)-1)) 这不起作用!!
  • 你在正确的道路上 :) =SUM(INDIRECT(ADDRESS(MATCH("test_start";A:A;0)+1;1;4)&":"&ADDRESS(MATCH( "test_stop";A:A;0)-1;1;4))) 调整起点和终点即可。再说一次:只适用于一列。
  • @Pascal 不推荐使用INDIRECT,因为它是易变的。 INDEX 应该始终是首选。请参阅我的答案以使用INDEX 替代。此外,您对公式的修改应反映在您的原始答案中,而不是评论中。
  • @ImaginaryHuman072889 感谢您提供这些信息。不知道那个。 INDIRECT。每次我使用它时都为我工作。尽管您的回答更加简洁明了!
  • @Pascal 使用INDIRECT 有时是不可避免的,但通常可以使用INDEX 代替。 INDIRECT 不会真正对小型电子表格造成问题,但对于非常大的电子表格,INDIRECT 等易失性函数将大大减慢计算时间。这就是为什么除非绝对必要,否则通常应避免使用它们。
【解决方案2】:

没有。

在 Excel 中选择范围是一项操作。公式返回结果。您无法通过公式进行操作。

【讨论】:

  • 好的,excel 是否提供任何内置工具来执行此类任务。
  • @EdmundCarvalho - vba
  • @Vityata 仅供参考,这是可能的。看我的回答。
  • @ImaginaryHuman072889 - 你需要选择它。您的答案只是给出了一个计算。但是选中的单元格没有移动。
  • @Vityata 我猜技术上是的,“选定”单元格是整个 A 列,但使用 INDEX 有效地根据起点和终点动态更改总和范围。跨度>
【解决方案3】:

是的,这是可能的。

使用这个公式:

= SUM(INDEX(A:A,MATCH("Test_start",A:A)+1):INDEX(A:A,MATCH("Test_stop",A:A)-1))

请参阅下面的工作示例。

【讨论】:

  • 我尝试了与您提供的完全相同的公式,它返回数据集中的最后一个值而不是总和,我将在其他时间重新创建您的方法:)。
  • @EdmundCarvalho 不知道该告诉你什么。这就是为什么我发布了一个屏幕截图来展示它的工作原理。
猜你喜欢
  • 1970-01-01
  • 2012-08-17
  • 2011-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-11
相关资源
最近更新 更多