Excel - 水平自动填充公式,单元格数增量

时间:2018-04-13 15:50:44

标签: excel autofill array-formulas

我有以下问题。我想将这个在单元格C13中的公式=SUMPRODUCT(--($C3:$Q3=C4:Q4))复制到相邻的单元格(D13,E13,F13等),但我希望$ C3:$ Q3成为$ C4:$ Q4。 (基本上=SUMPRODUCT(--($C3:$Q3=C4:Q4)) ====> =SUMPRODUCT(--($C4:$Q4=C4:Q4))等等。水平拖动没有帮助,因为自动填充会增加行而不是列号。

我试过OFFSET,但据我所知,它引用的是数据,而不是公式。任何帮助,将不胜感激。提前致谢。

2 个答案:

答案 0 :(得分:0)

将公式转换为文本应该有效。

  1. =SUMPRODUCT公式复制为需要填充列的行数。
  2. 将公式转换为文本。突出显示您复制的行,然后使用=
  3. 查找并替换所有'=
  4. 复制这些行。
  5. 在列中选择您希望公式的单元格,并选择valuestranspose进行特殊粘贴。
  6. 突出显示已粘贴的单元格,然后使用=
  7. 查找并替换所有=

    不幸的是,即使看起来多余,最后一步也是必要的。

答案 1 :(得分:0)

def getAngle(self,x,y): return math.degrees(math.atan(y/x)) put

C13

然后将其拖到列之间。

注意:

1)这假定=SUMPRODUCT(--(OFFSET($C$3:$Q$3,SUM(COLUMN(C13)-COLUMN($C$13)),,,)=$C$4:$Q$4)) 是要比较的固定范围,因为它在给定的示例中保持不变

2)你不介意D栏中的公式将自我引用以进行比较

您也可以将$C$4:$Q$4括起来。

Index

示例:

Example

修改

基于共享工作簿,需要拖动列和向下行以比较64 * 64矩阵元素(其中每个元素是源数组中的一行)

在C71中放入以下内容并向下拖动到BM133:

=SUMPRODUCT(--(INDEX(OFFSET($C$3:$Q$3,COLUMN(C13)-COLUMN($C$13),,,),0,0)=$C$4:$Q$4))

结果:

Sample from results

在C71中添加了性别不同的R列测试,将以下内容向下拖动并移至BM133:

=SUMPRODUCT(--(INDEX($C$2:$W$64,MATCH($B71,$B$2:$B$64,0),0)=INDEX($C$2:$W$64,MATCH(C$70,$B$2:$B$64,0),0)))