答案1
看看你之前的问题,看起来你正在尝试提取给定特定列的数据二查找条件——月份和分支。
为了简单起见,我还假设每个子表的分支完全相同,即它们都存在并且顺序相同。
您的工作表修改如下,
在中输入以下公式B3
:
=INDEX(D4:D16,MATCH($B$1,$D$4:$D$16,0)+MATCH($B$2,$C$4:$C$16,0)-1)
解释:
该公式不是索引到行,而是索引到所需的数据列,即D4:D16
。
第一个MATCH()
查找匹配的 Month 行,而第二个查找匹配的 Branch 的偏移量。需要-1
将第二个返回的从一开始的索引转换MATCH()
为从零开始的偏移量。(是的,MATCH($B$2,$C$4:$C$16,0)-1
可以用 代替,但用 更容易理解。)MATCH($B$2,$C$5:$C$16,0)
-1
笔记:
- 公式的编写方式意味着向右填充公式会提取下一列的值。这就是为什么
D4:D16
是相对引用。 - 或者,要获取另一列的数据,只需用适当的引用替换。(如果使用单个月份标题,则
D4:D16
绝对引用需要保持不变,如下所述。)$D$4:$D$16
- 即使从第一列以外的列中提取数据,也不需要每个月有多个标题。只有第一个数据列需要一个标题,或者可以使用合并标题。(这就是为什么是
$D$4:$D$16
绝对引用。)
答案2
我的答案有两种选择:
使用屏幕截图中显示的数据集。
使用修改后的数据集的解决方案。
选项1:
我想建议一种方法,其中包含一个简单的技巧,可以根据月份管理不同的数据集。
怎么运行的:
- 你需要创建辅助细胞
B41
,这反映了月份名称在 单元格B42
。 - 单元格中的公式
B42
:
=IF(OR(B41=1,B41=2,B41=3,B41=4,B41=5,B41,6),CHOOSE(B41,"January","February","March","April","May","June"))
- 单元格中的公式
B43
,将其向下拖动。
=IF($B$41=1,INDEX($B34:$L34,MATCH(B$42,$B$33:$L$33,0)),IF($B$41=2,INDEX($B38:$L38,MATCH(B$42,$B$37:$L$37,0)),""))
笔记:
- 一旦包含了本月剩余的数据,第二个公式就需要扩展。
选项 2:
在单元格中输入此公式
B51
并向下填充=INDEX($B47:$G47,MATCH($B$50,$B$46:$G$46,0))
根据需要调整公式中的单元格引用。