Markdown表格公式语法总结
原文链接:如何使用公式
概述
该库为Markdown表格添加了公式功能,格式类似Org Mode(功能稍简),支持复制单元格/行列/范围数据、求和、求平均、数值比较、代数运算等,公式需放在表格后的HTML注释中。
公式基本结构
公式格式固定为:<!-- TBLFM: 目标=源 -->
<!--和-->是HTML注释标记,内部需留空格TBLFM:是公式标识,后接空格- 核心为
目标=源:目标是结果存放位置,源是计算数据来源
核心语法
1. 单元格/行列引用
- 行用
@表示,列用$表示,格式为@行$列(行前列后) - 绝对引用:直接用数字,如
@1(第1行)、$2(第2列)、@3$4(第3行第4列) - 相对引用:以当前单元格为基准,如
@-1(上一行)、$+2(右两列) - 特殊符号:
@<第一行,@>最后一行;$<第一列,$>最后一列@I表头下方第一行(内容起始行)
2. 范围表示
用两个点 .. 连接两个引用,表示连续范围(两边类型需一致,如行→行、单元格→单元格):
@1..@3:第1到3行(当前列)@2$3..@5$5:第2行3列到第5行5列的单元格范围$4..$6:第4到6列(当前行)
3. 运算类型
代数运算(需用括号包裹)
- 加法:
(@2$3+@3$4)(至少一个为单个单元格) - 减法:
(@2$3-@3$4)(第二个操作数需为单个单元格) - 乘法:
(@2$3*@3$4)(至少一个为单个单元格) - 除法:
(@2$3/@3$4)(第二个操作数需为单个单元格)
条件操作
格式:if(比较表达式, 结果1, 结果2)
- 比较表达式:仅支持单元格比较,用
<(小于)、>(大于)、<=、>=、==(等于)、!=(不等于) - 示例:
if($1>3, $1, 3)(若第1列值>3,取该值;否则取3)
4. 函数
sum(范围):求范围内所有值的和,返回单个结果
示例:sum(@I..@-1)(表头下第一行到当前行上一行的和)mean(范围):求范围内所有值的平均值,返回单个结果
5. 嵌套与链式公式
- 嵌套:运算/函数可嵌套(需保证数据格式匹配),如
sum(@3..@4)+@3$1 - 链式公式:多个公式用
::分隔或分多行,按顺序执行(前一个结果作为后一个的输入)
示例:<!-- TBLFM: @2=@4::$1=$2 -->或分两行写两个<!-- TBLFM: ... -->
6. 格式选项
用 ; 附加格式指令:
;%.2f:保留2位小数;dt:显示为日期时间(如2023-07-12 10:00);hm:显示为时分(如02:10)
时间与持续时间处理
- 支持的格式:日期时间(2023-07-12 10:00)、毫秒数(1672559940000)、时分(09:15)
- 运算:可直接加减(如
$2 - $1计算时间差) - 示例:
$5=($2 - $1);hm(计算时间差并显示为时分)
💬 评论