我有以下数组公式适用于我想要做的事情,但我正在尝试在用户选择值时更改公式。
=INDEX($A$2:$B$70,SMALL(IF($A$2:$B$70=$A$121,ROW($A$2:$B$70)),ROW(1:1))-1,1)
它用于月度报告,用户可以从当月的下拉菜单中选择,例如1,2,3 - 31.
因此,如果用户从下拉菜单中选择1,我希望公式使用上面的公式。 如果他们选择2例如我希望公式移动到列上,那么它将变为
=INDEX($A$2:$C$70,SMALL(IF($A$2:$C$70=$A$121,ROW($A$2:$C$70)),ROW(1:1))-1,1)
等一次移动一列。
这有可能,甚至可以在没有VBA的情况下完成吗?
我在以下链接上有一个我想要做的例子 https://docs.google.com/spreadsheets/d/1MDOzoQxYLgW-UOyljZsMwSu8zyAB7O2k1V-bTNP5_F0/edit?usp=sharing
所有数据都在名为staff的第一个标签上。每位员工都有一行,并且在相应的日期列中分配了职责。 在名册标签上,它总结了每一天。所以我想要发生的是当你选择月份的某一天(或者最好是实际的日期)时,工作表会发生变化以反映数据。
目前我工作的代码仅用于第1天,因为列引用被编码到公式中。我希望以某种方式从下拉菜单中选择6,然后公式会将所选日期映射到原始数据中的相应范围,并更新公式并从Staff!$A$2:$B$68 to Staff!$A$2:$G$68
更改公式。
如果显示#NUM,公式找不到更多条目!但我打算用ISERROR()函数代替#NUM!用“”。
如果有意义,这就是我想要实现的目标吗?
答案 0 :(得分:0)
此处存在一些问题/您要从A列返回值,因此第一个范围可以是$A$2:$A$70
,这意味着您不需要1来指定 column_num 。 IF
声明涵盖A2:C70,当你真的只需要B2:70或C2:C70时,视1或2而定。
假设A122中有1或2,
=INDEX($A$2:$A$70, SMALL(IF(INDEX($B$2:$C$70, 0, $A$122) = $A$121, ROW($1:$69)), ROW(1:1)))
标准非阵列替代,
=INDEX($A$2:$A$70, SMALL(INDEX(ROW($1:$69)+(INDEX($B$2:$C$70, 0, $A$122) <> $A$121)*1E+99,, ), ROW(1:1)))