求可输出X除以Y的商和余数的谷歌表格公式
谷歌表格公式:完整展示X除以Y的商余分解过程
如果你需要把X除以Y的所有分解步骤(包括逐步迭代的商和余数)一次性输出,不用手动计算每一步,可以用以下结合LET、SCAN和ARRAYFORMULA的公式:
公式1:展示从原始数到最终余数的完整分解
假设被除数X在单元格A1,除数Y在单元格B1,输入以下公式:
=ARRAYFORMULA(IFERROR( LET( x, A1, y, B1, max_steps, IF(y=0,,CEILING(LOG(x, y)) + 1), // 迭代计算每一步的数值(从X开始,每次取上一步的商) step_vals, SCAN(x, SEQUENCE(max_steps), LAMBDA(current, _, QUOTIENT(current, y))), // 计算每一步的商和余数 step_quots, QUOTIENT(step_vals, y), step_rems, MOD(step_vals, y), // 生成格式化输出文本 output_lines, IF(step_vals > 0, step_vals & " = " & y & "*" & step_quots & " + " & step_rems, ""), // 过滤空行,只保留有效步骤 FILTER(output_lines, output_lines <> "") ) ))
效果示例
当A1=10,B1=3时,公式会输出3行结果:
- 10 = 3*3 + 1
- 3 = 3*1 + 0
- 1 = 3*0 + 1
当A1=15,B1=5时,输出:
- 15 = 5*3 + 0
- 3 = 5*0 + 3
公式2:简化版(仅展示最终商余及核心步骤)
如果只需要从原始数直接分解到最终余数,不需要中间商的二次分解,用这个更简洁的版本:
=ARRAYFORMULA(IFERROR( LET( x, A1, y, B1, final_quot, QUOTIENT(x, y), final_rem, MOD(x, y), { x & " = " & y & "*" & final_quot & " + " & final_rem; IF(final_rem > 0, final_rem & " < " & y & "(最终余数)", y & "*" & final_quot & " = " & x & "(无余数)") } ) ))
效果示例
A1=17,B1=5时输出:
- 17 = 5*3 + 2
- 2 < 5(最终余数)
A1=20,B1=4时输出:
- 20 = 4*5 + 0
- 4*5 = 20(无余数)
注意事项
- 确保除数Y不为0,公式已通过
IFERROR处理除零错误 - 若X小于Y,公式会直接输出
X = Y*0 + X及X < Y(最终余数)
内容的提问来源于stack exchange,提问作者William Toscano
相关产品推荐
相关产品推荐

