【问题标题】:In Excel, how do I get an unknown number of values from cells using a list from another cell?在 Excel 中,如何使用来自另一个单元格的列表从单元格中获取未知数量的值?
【发布时间】:2021-07-20 00:34:00
【问题描述】:

我有一个列中有日期的电子表格(甘特图)。请参阅下表。 “行”列是 Excel 中的行号,而不是真正的列。

Row Depends on Row(s) (Col F) Start (Col G) End (Col H) Notes
9 7/24/21 7/26/21
10 9 7/27/21 7/30/21 Starts 1 day after row 9 ends.
11 7/25/21 7/27/21
12 9,11 7/28/21 7/29/21 Starts 1 day after MAX(row 9 end, row 11 end).

如何使用公式或其他方法自动将单元格“Start10”和“Start12”设置为从其行中的单元格“DependsOnRows”中读取,以获取“DependsOnRows”列中任何数字的最大值?

目前,我在单元格“Start10”和“Start12”中使用此公式,其中包括手动输入的“max”函数:

开始10: =WORKDAY(MAX(H9), 1, Holidays!A$2:A$99)

开始12: =WORKDAY(MAX(H9,H11), 1, Holidays!A$2:A$99)

我想自动读取 max 函数中的行号,以便从“DependsOnRows”列中读取它们。

我可以在“DependsOnRows”列中使用任何格式。我可以使用大括号、方括号、逗号、空格等等。理想情况下,该列表需要位于 1 个单元格中,而不是多个单元格中。

【问题讨论】:

  • 一个有趣的挑战,感谢您的提问!为了可见性,我建议更改您的标题以更好地反映问题的症结(根据单个字符串的方向获取多个值),因为获取该集合的 MAX 是您已经在解释中展示了如何做的事情你的问题(如果这有任何意义的话)。

标签: excel excel-formula excel-2010


【解决方案1】:

您可以使用FILTERXML 函数将行号字符串更改为动态数组。从那里,您可以INDEX 每行的位置以及固定的列号(在本例中为 8 或 H 列)来获取 MAX 函数的测试值。

以下内容对我有用:

=WORKDAY(MAX(
INDEX($A$1:$I$13,
FILTERXML("<t><s>" &SUBSTITUTE($F13, ",", "</s><s>")&"</s></t>", "//s"),8)),
1, Holidays!A$2:A$99)

【讨论】:

  • 如果我像您一样将您的代码复制粘贴到测试表中的 G13 中,然后删除 Holidays 参数(因为我没有在测试工作簿中制作 Holidays 表),我会得到一个#姓名?单元格中的值。这似乎是由基于测试的 FILTERXML 函数引起的,在这些测试中,我将部分公式复制到其他单元格中,尽管我对此不是 100% 确定。我正在使用 Excel 2010。这可能是一个限制吗?您输入的代码看起来与您截屏的代码几乎相同,所以我认为您没有打错。
  • 啊,FILTERXML 函数在 Excel 2010 中不受支持,因此公式无法像在 Excel 365 中那样工作。抱歉,让我想想另一个选项
  • 仅供参考,我建议添加 Excel-2010 标签以尝试为您提供适合您情况的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-24
  • 1970-01-01
相关资源
最近更新 更多