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

HC.旋
HC.旋 WPS资深用户Lv.3 优质创作者WPS寻令官KVPWPS产品体验官

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以内的随机加减法

福建省
浏览 69
收藏
4
分享
4 +1
3
+1
全部评论 3
 
熠林
熠林 Lv.3 优质创作者

Lv.3 优质创作者

跟着旋老师学知识
   浙江省
举报
0
0
 
song
song WPS资深用户Lv.3 优质创作者WPS金话筒WPS寻令官

Lv.3优质创作者

给旋佬点赞,向旋佬学习,又学到了不少东西
举报
0
0
 
拾光漫行
给旋佬点赞,向旋佬学习,又学到了不少东西
   重庆
举报
0
0