题目来源:https://excel-esports.com/product/origami-mewc-2025/
有兴趣的同学,可以前去官网下载试题,尝试解决一下。
题目介绍
按照题目的难度级别分类,主要分为以下几类:
Level 1(简单):基于行列逻辑的引用定位问题
Levels 3-5(中等):不同复杂度的折叠问题
Levels 6-7(困难 / 非常困难):对角折叠和连续多方向折叠问题
核心知识
一、核心公式清单
二、必备知识模块
线性代数知识
矩阵轴对称变换(如向右对折:列号映射为
9-y)对角折叠的象限坐标变换
连续多次折叠的复合变换计算
正则表达式知识
从混合格式引用(如
R2C2、AH100)中提取行、列信息匹配折叠方向符号(
↑/→/↗等)
自定义函数
用
LAMBDA()封装折叠坐标变换逻辑复用不同方向、不同尺寸的折叠计算
模拟运算表
批量测试不同折叠参数(尺寸、方向、起始位置)
验证多组题目答案的一致性
基础编程
理解循环、条件判断、函数封装思想
辅助 Excel 函数逻辑设计(如坐标变换的迭代计算)
三、核心应用场景
坐标定位:用
INDEX()/XLOOKUP()+ 线性代数变换,实现折叠前后单元格映射引用解析:用文本函数 + 正则表达式,解析任意格式的单元格引用
矩阵生成:用
MAKEARRAY()+LAMBDA(),一键生成折叠后的完整矩阵逻辑分支:用
IFS()/SWITCH(),处理多方向、多象限的复杂折叠规则
案例讲解
题目的难度是层层递进的,难度更高的题目会复用之前的题目的公式与技巧。为了节省时间,我们讲解一下第3题,它非常具有说明意义,首先它考察,lambad公式的使用,偏移量的计算,模拟表运算,以及嵌套函数的使用。尤其是后面的题目的解题,尤其需要分步骤拆解,把每一步的解题过程都抽象定义为公式,层层递用计算。
那么我们开始第3题的讲解。

在 Excel 中实现 “向右对折(右半边保留、左半边置零)” 操作的解题思路,核心是处理 8×8 或类似的 “纸张” 矩阵,属于 Origami 折纸案例的技术实现方案。特别说明,这里的纸张上的数据翻折后,翻折的一面就会覆盖另一面,。相当于底层一面的数据没有了。
第一步:纯数学坐标映射法
核心逻辑:利用轴对称坐标变换,直接通过公式定位翻折前的原始位置。
假设原始矩阵是8 列(列号 1~8),向右对折后只保留右半 4 列(列号 5~8):
翻折后右半边第
x行第y列(y从 5 到 8)翻折前的原始坐标是:第
x行第(9-y)列例:翻折后第
x行第 5 列 → 翻折前第x行第9-5=4列;翻折后第x行第 8 列 → 翻折前第x行第9-8=1列
优点:计算高效,无需遍历所有单元格,直接通过行列号推导。
适用场景:已知翻折后位置,快速反查原始数据。
=第二步:逐元素构建矩阵法(INDEX 函数)
核心逻辑:手动构建翻折后的新矩阵,逐单元格赋值。
操作步骤:
左半部分(原左 4 列)直接填充
0,表示被覆盖隐藏。右半部分(原右 4 列)使用
INDEX(原始矩阵, 行号, 9-列号)函数,从原始矩阵中提取翻折前对应位置的数值。
优点:逻辑直观,适合 Excel 新手,逐单元格验证不易出错。
第三步:MAKEARRAY 函数一次性构建法
核心逻辑:利用 Excel 365 的动态数组函数
MAKEARRAY,一次性生成完整翻折矩阵。公式示例(假设原始矩阵在
A1:H8):=MAKEARRAY(8,8, LAMBDA(r,c, IF(c<=4, 0, INDEX(A1:H8, r, 9-c))))r:行号,c:列号IF(c<=4, 0, ...):左半 4 列置 0INDEX(A1:H8, r, 9-c):右半 4 列提取翻折前对应数值
优点:代码简洁,动态数组自动溢出填充,无需手动拖拽公式。