殊途同归:不用公式,一个ETPQ也能做100以内的加减法
HC.旋 







Lv.3 优质创作者
昨天看到song老师在Q我,说ETPQ能否实现100以内的二次加减法
加载空数据到ETPQ
其中,song老师提到:
生成中间的运算符(0/1判断)=IF(RANDBETWEEN(0,1)=0,"+","-")
生成b并控制结果不超过范围=IF(B2="+",RANDBETWEEN(0,100-A2),RANDBETWEEN(0,A2))
生成c并控制结果不超过范围=IF(D2="+",RANDBETWEEN(0,100-EVALUATE(A2&B2&C2)),RANDBETWEEN(0,EVALUATE(A2&B2&C2)))
咱们根据ETPQ,也一步步来拆解和制作
随机整数和随机加减号
继续,先说一下,思路是对的,但由于公式比较长,需要后续补充或分段,所以是会报错的
最后,将公式整理一下,最好再使用自定义函数的方式,方便查看
let
上限 = 100,
题目数量 = 100,
列数 = 4,
生成算式 = () as text =>
let
rnd = Number.RandomBetween,
随机整数 = (下限, 上限) => Number.RoundDown(rnd(下限, 上限 + 0.999)),
随机符号 = () => if rnd(0,1) < 0.5 then "+" else "-",
a = 随机整数(0, 上限),
符1 = 随机符号(),
b = if 符1 = "+" then 随机整数(0, 上限 - a) else 随机整数(0, a),
中间值 = if 符1 = "+" then a + b else a - b,
符2 = 随机符号(),
c = if 符2 = "+" then 随机整数(0, 上限 - 中间值) else 随机整数(0, 中间值),
答案 = if 符2 = "+" then 中间值 + c else 中间值 - c
in
Text.From(a) & 符1 & Text.From(b) & 符2 & Text.From(c) & "=",
// & Text.From(答案)
题目列表 = List.Transform({1..题目数量}, each 生成算式()),
分组 = List.Split(题目列表, 列数),
转表 = Table.FromRows(分组, List.Transform({1..列数}, each "列" & Text.From(_)))
in
转表完成。如果需要更新题目,点一下刷新,或者导出到表格中刷新
--本文完--
本次编辑电脑系统:
版本Windows 11 家庭中文版
版本号25H2
操作系统版本26200.8875
WPS版本:
12.1.0.29670-release
渠道号12012.2019
💖希望对你有助。欢迎点赞、评论、收藏!!!💖
查看我的更多合集:(点击跳转👉)WPS Query合集
又:
song老师原文如下
(直接点击下方标题跳转)
殊途同归:不用Power Query,一个公式也能做九九乘法表
其中帖子的下半段是100以内的随机加减法
Lv.3 优质创作者
Lv.3优质创作者