Excel - 水平自动填充公式,单元格编号递增

Excel - autofill formula horizontally with cell number increment

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

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

将公式转换为文本应该可行。

  1. 将您的 =SUMPRODUCT 公式复制到您需要填充的列的行数。
  2. 将公式转换为文本。突出显示您复制下来的行,找到并替换所有 ='=
  3. 复制那些行。
  4. Select 列中您想要公式的单元格并选择 valuestranspose 进行特殊粘贴。
  5. 突出显示粘贴的单元格并找到所有 = 并将其替换为 =

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

C13中放

=SUMPRODUCT(--(OFFSET($C:$Q,SUM(COLUMN(C13)-COLUMN($C)),,,)=$C:$Q))

然后将其拖到各列中。

注:

1) 这假设 $C:$Q 是一个固定的比较范围,因为它在您给定的示例中保持不变

2) 您不介意 D 列中的公式将自引用以进行比较

您也可以只包含在 Index 中。

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

示例:

编辑:

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

在 C71 中,将以下内容向下拖动到 BM133:

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

结果:

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

=IF(INDEX($C:$W,MATCH($B71,$B:$B,0),16)<>INDEX($C:$W,MATCH(C,$B:$B,0),16),SUMPRODUCT(--(INDEX($C:$W,MATCH($B71,$B:$B,0),0)=INDEX($C:$W,MATCH(C,$B:$B,0),0))),"")