Excel索引+ if +间接
我正在帮助朋友完成一项工作任务,无法弄清楚最后一部分。 我们给出了一个matrix,其中包含以下布局的工作人员/用户列表:
Location | First Name | Last Name | Property 1 | Property 2 | Property 3 | .. | Property N Frankfurt | Adam | Schmidt | X | | X | .. | X,
即属性是布尔forms(X表示“是”,或者空表示“否”)。
任务是根据位置+ 1属性search所有用户,我们可以从N个属性中进行select,即我们有一个下拉菜单,其中包含所有属性1,2,…,N,我们可以精确select1的属性。
输出应该是格式:Location | 名字| 姓。
所以,我的想法是用我们select的属性的ADDRESSreplace标准IF((“array for criteria 1”=“criteria 1”)*(“array for criteria 2”=“yes”),…) ,然后我们使用INDIRECT函数从文本值转换为单元格引用。
举个例子,如果我们在下拉菜单中select属性1(位于D列),ADDRESS函数将返回$ D $ 1作为起始字段,$ D $ 100作为结束字段。 然后这些字段在主(长)search函数中的一个INDIRECT函数中使用。
我已经从互联网上的其他post看到,有可能使用SUM(INDIRECT(带有起始单元格定义的单元格“:”&cell with defined cell defined)),所以我尝试了类似的function,但它不似乎工作。
这里是excel文件的公式和布局的图片。
你应该把你的工作表分成三部分:
- 数据集
- 标准
- 结果集
按照步骤为search创buildbutton操作。
- 导航到“开发者”选项卡。
- 点击插入>button。
- 画一个button。 将显示“分配macros”对话框。
- 点击logging。
- inputmacros名称为“SearchRecords”,然后单击确定。
- 点击任何空的单元格。 导航到“数据”选项卡。
- 在“sorting和筛选”部分点击“高级”。
- select“复制到其他位置”单选button,并根据数据集和条件位置input范围。
- 点击确定。
- 导航到“开发人员”选项卡,然后点击“停止录制”。
- 将该button重命名为“search”。
现在您可以更新search条件并单击searchbutton来更新相邻位置的结果。
更简单的方法是按如下方式组织input数据:
这个数据集是枢轴友好的。 然后您可以创build数据集的数据透视表。 移动位置和属性字段到报表filter部分,全名到行标签部分和位置到值部分。
请注意全名只是“名”和“姓”的连接值。