偏移公式逻辑清晰
我试图让年份达到个人支出子类别的所需月份。 在研究了计算器之后,我发现了一个看起来适合我的要求的公式。 我发现它在公式评估过程中将所需区域向下移动一行。 我通过打击和审判在特定的基础上修改了公式,并给出了正确的结果。 对我来说,最初select的公式似乎相当合适。 我在下面显示了样本数据表以及原始公式和修改公式的评估步骤。 有人可以特别解释偏移量部分,为什么最初select的公式会出错,以及修改如何帮助解决问题。 不知何故,我无法在这个问题上弄清楚概念。
示例数据文件
用公式A评估Personal_Accounts
Personal_Accounts使用修改后的公式进行评估
偏移工作通过指定:
你将偏移的单元格 (在本例中为A1
),然后指定从该位置移动多less行和列,然后确定范围的高度和宽度。
向下移动的行数:在这种情况下,向下的行数由Match()
确定。 Match()
在这里将返回范围A1:A9
中的行数,可以find值SS
。 答案是5
。 偏移现在正在查看范围A1 + 5行: A6
移动的列数:在这里,我们移动1列。 没有有趣的生意。 新的范围是B6
在起始点范围内包含的行数:这里用COUNTIFS()
返回在A2:A9
范围内findSS
的次数。 答案是3
。 所以范围将从B6开始,并在范围内包含三行。 本质上是B6:B8
。
最后,要包含在这个范围内的列数:这里是7
因为这是你在单元格A13
中的所以你的范围现在是B6:H8
OFfseT()
返回这个范围, Sum
对它进行总结
您从MATCH()
的结果中减去一个,然后正确地移动该公式以生成B5:H7
。 您也可以将MATCH()
的search范围更改为A2:A9
,从可读性的angular度来看,这可能更有意义。
最后,你的COUNTIFS()
可能只是COUNTIF()
因为你没有评估多个条件。
所以如果我必须从头开始写这个,我会使用:
=Sum(Offset(A1, Match(A2:A9, A12, 0), 1, Countif(A2:A9, A12), A13)
哪个会得到相同的正确答案, Match()
结果中没有任何math计算。
偏移有两个主要function – 从起始点使用指定数量的行和列移动到单元格(目标),或者select从目标单元格开始的指定行数和列数的范围。 你原来的公式在这个部分有问题
MATCH(A12;A1:A9;0)
匹配的单元格是第五个,因此偏移量在A6中向下移动5行,因为它以A1 + 5行开始。 然后移动1列到B6,然后创build共3行的范围,7列= B6:H8。 所以你需要从匹配函数的结果中扣除1来结束在右边的行。 为了更好的理解,如果SS值在A1:A9的范围的第一行(在A1中),那么偏移将从A1一行向下移动到A2,尽pipe你不希望它完全移动。
看看你的基本偏移公式定义。
最好的(参考单元,多less行参考,多less列从行进中移动,多less行返回,多less列返回)
因此如果将参考单元设置为A1,并且想要将结果返回到A2,则需要从参考单元格向下移动一行。
OFFSET($ A $ 1,1,0,1,1)
现在,如果我们查看方程的匹配部分,MATCH返回信息所在的位置。所以如果我们想要在A1:A100范围内findA2中信息的匹配位置,Match将会告诉您A2中的信息位于列的第二位。 或者更确切地说,它返回值2。
所以现在我们需要告诉偏移距离第二位的距离。 我们实际上并不希望它向下移动2行,因为我们的参考点是A1,这是第一行。 因此,我们真的想下一排到第二排。 所以你想从你的比赛结果中减less1个,你通过做比赛(…) – 1正确做到了