Excel索引+ if + indirect

时间:2015-09-02 08:29:08

标签: arrays excel lookup excel-indirect

我正在帮助一个朋友完成他已经完成的工作任务,并且无法弄清楚最后一部分。我们给出了一个矩阵,其中包含以下布局中的工人/用户列表:

Location  | First Name | Last Name | Property 1 | Property 2 | Property 3 | .. | Property N
Frankfurt | Adam       | Schmidt   | X          |            | X          | .. | X,

即。属性采用布尔形式(X表示“是”,或为空表示“否”)。

任务是根据我们能够从N个属性中选择的Location + 1属性搜索所有用户,即我们有一个下拉菜单,其中包含所有属性1,2,..,N我们可以准确选择其中一个属性。

输出应为格式:Location |名字|姓氏。

所以,我的想法是替换标准的IF((“标准1”=“标准1”的数组)*(“标准2的数组”=“是”),...)与ADDRESS我们选择的属性,然后使用INDIRECT函数将其从文本值转换为单元格引用。

举一个例子,如果我们在下拉菜单中选择属性1(位于D列),ADDRESS函数将返回$ D $ 1作为起始字段,$ D $ 100作为结束字段。然后,这些字段在主(长)搜索功能内的INDIRECT函数内使用。

我从internet的其他帖子中看到,可以使用SUM(INDIRECT(带有起始单元格的单元格&“:”& cell with defined cell defined defined)),所以我尝试了一些东西在我的功能中类似,但它似乎不起作用。

这是公式和图片的图片。 excel文件的布局。 picture

2 个答案:

答案 0 :(得分:1)

您应该将表格整理为3个部分:

  1. 数据集
  2. 标准
  3. 结果集
  4. Advanced Filter

    按照步骤为搜索创建按钮操作。

    1. 导航至“开发者”标签。
    2. 点击插入>按钮。
    3. 画一个按钮。将显示“分配宏”对话框。
    4. 点击“记录”。
    5. 输入宏名称为“SearchRecords”,然后单击“确定”。
    6. 点击任何空单元格。导航到“数据”标签。
    7. 在'排序&过滤'部分点击'高级'。
    8. 选择“复制到其他位置”单选按钮,然后根据数据集和条件位置输入范围。
    9. Select Advanced Filter options

      1. 点击“确定”。
      2. 导航至“开发人员”标签,然后点击“停止录制”。
      3. 将按钮重命名为“搜索”。
      4. 现在,您可以更新搜索条件,然后单击搜索按钮以更新相邻位置的结果。

答案 1 :(得分:0)

更简单的方法是组织输入数据,如下所示: Pivot friendly data

此数据集是Pivot友好的。然后,您可以创建数据集的数据透视表。将“位置”和“属性”字段移​​动到“报表过滤器”部分,将“全名”移动到“行标签”部分,将“位置”移动到“值”部分。

请注意,全名只是'名字'的串联值。 &安培; '姓氏'。