【问题标题】:Formulas to populate spreadsheet with data用数据填充电子表格的公式
【发布时间】:2011-12-03 06:57:03
【问题描述】:

我想在特定条件下填充一些单元格。问题是,我不知道如何仅使用公式来做到这一点(不能使用宏或排序)。

不管怎样,这是我的工作簿,里面有它的**工作表**

**Sheet1**
TASK     Week
Test     1
Test2    1
Test3    1
Test4    2
Test5    3
Test6    2
Test7

**Sheet2**
Week
2

TASK
Test4
Test6

我一直在尝试做的是:

  • 根据所选周填充 Sheet2 任务。
  • 如果我选择第 2 周(在 Sheet2 中),它应该使用 Sheet1 中具有该周数的任务填充任务列表(在同一张工作表上)。

例如,现在(假设)已经加载了一周 == 2 的任务。

有任何疑问,请告诉我!我希望我把我的问题说清楚了。

非常感谢您!

【问题讨论】:

    标签: excel spreadsheet worksheet-function array-formulas


    【解决方案1】:

    好的,我找到了更好的解决方案。这需要在 Sheet2 上添加一个额外的帮助列,但它至少会返回一个紧凑的匹配列表(没有奇怪的间距)。

    在 Sheet2 上,在匹配列表的第一行(本例中为 A3)输入以下内容:

    =IFERROR(INDEX(Sheet1!$A$1:$A$7,B3),"")
    

    在下一列(此处为 B3)的相邻单元格中输入以下内容:

    =IFERROR(MATCH(2,Sheet1!$B$1:$B$7,0),"")
    

    其中 2 是您匹配的第 # 周。

    在下一行输入以下公式(分别在 A4 和 B4 中):

    =IFERROR(INDEX(OFFSET(Sheet1!$A$1:$A$7,SUM(B$3:B3),0),B4),"")
    

    =IFERROR(MATCH(2,OFFSET(Sheet1!$B$1:$B$7,SUM(B$3:B3),0),0),"")
    

    您可以根据需要填写此行公式。

    【讨论】:

    • 不错的解决方案。请注意,IFERROR(非常有用)将适用于 Excel 2007 或更高版本。
    • 比最初预期的要复杂,但还是不错的。非常感谢!
    【解决方案2】:

    这是我想到的第一种方法。可能有更好、更优雅的解决方案,但我想我会分享。

    如果您知道 Sheet1 列表中的任务总数,例如 n,您可以执行以下操作:

    1. 在您想要匹配任务列表的表 2 上,从 A4(或您希望列表顶部的任何内容)向下选择 A(4+n-1)。因此,对于您的示例数据,请选择 A4:A10
    2. 在不更改选择的情况下,键入以下公式:

      =IF(Sheet1!B2:B8=2,Sheet1!A2:A8,"")

      其中 2 是您要匹配的第 # 周。

    3. 按 Ctrl+Shift+Enter 输入公式。

    【讨论】:

    • 它可以工作,但还有别的东西:它显示与原始值相同的行级别的值。我的意思是,如果 Test5 在 Sheet1 的第五个单元格中,则此公式将使其显示在目标范围的第五个单元格中。知道如何改变这个吗?它应该将它们显示为 Sheet2(目标范围)上的第一个值。我想这是因为您的公式的工作方式(每个单元格)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    相关资源
    最近更新 更多