Excel结合CONCATENATE/ROUND/MOD函数的拼接计算正确公式求解
最终结果列公式解决方案
题目规则匹配前提
所有公式仅需编写在表头下方第一行计算行(默认行号为2),编写完成后直接下拉填充即可适配全部行,无需逐行修改。提前按要求配置前置列公式:
- B列固定存储目标进制基数,公式中使用
$B$2绝对引用锁定 - E列(商列)强制使用
ROUND函数计算,首行公式如下,将[初始被除数单元格]替换为表格中存储原始待计算数值的单元格即可:=ROUND(IF(ROW()=2, [初始被除数单元格], IF(OFFSET(F2,-1,0)<>0, OFFSET(F2,-1,0)*10, 0))/$B$2, 0) - F列(余数列)强制使用
MOD函数计算,首行公式如下:=MOD(IF(ROW()=2, [初始被除数单元格], IF(OFFSET(F2,-1,0)<>0, OFFSET(F2,-1,0)*10, 0)), $B$2) - D列为迭代序号/小数位标记列
最终结果列首行正确公式
=CONCATENATE(IF(ROW()=2,"",OFFSET(G2,-1,0)),IF(AND(ROW()=2,F2<>0),".",""),E2)
提示:如果你的最终结果列不是G列,把公式里的G2替换为当前公式所在单元格的地址即可
逻辑校验
- 余数规则适配:E、F列公式自动判断上一行余数,余数不为0时自动将余数乘10作为下一轮计算的输入值
- 小数点规则适配:公式自动识别第一次迭代场景,首次计算余数不为0时自动插入小数点
- 拼接规则适配:严格使用
CONCATENATE函数,非首行自动拼接上一行已生成的结果串,再拼接当前行计算出的位值,逐位生成最终结果 - 函数规则适配:E列使用
ROUND取整、F列使用MOD取余,完全符合题目指定函数的使用要求
内容的提问来源于stack exchange,提问作者Achmad Yadi
相关产品推荐
相关产品推荐

