Excel含INDIRECT公式自动填充失效求助:求批量递增生成方案
解决方案
一、Excel原生自动填充方案(无需代码)
问题根源是INDIRECT的参数为硬编码文本字符串,Excel无法识别其中的行号作为可自动递增的引用。改用ROW()函数动态生成当前行号,公式修改为:
=SUM(COUNTIF(INDIRECT({"K","N","Q","T","W","Z","AC","AF"}&ROW()),"*p*"))
将该公式输入第一行目标单元格后直接下拉填充即可——ROW()会自动获取当前单元格所在行号,与列名拼接成正确的单元格引用,行号随下拉操作自动递增。
二、Python批量生成公式(导出备用)
若需批量生成固定行号的公式文本(例如导入至其他表格),可使用以下脚本:
# 生成第1到第100行的公式,可自行调整range的起止行号 for row_num in range(1, 101): column_prefixes = ["K", "N", "Q", "T", "W", "Z", "AC", "AF"] cell_list = [f'"{col}{row_num}"' for col in column_prefixes] formula = f'=SUM(COUNTIF(INDIRECT({{{",".join(cell_list)}}}),"*p*"))' print(formula)
运行脚本后,控制台会输出对应行的所有公式,复制粘贴至Excel即可使用。
内容的提问来源于stack exchange,提问作者Phillip Howell
相关产品推荐
相关产品推荐

