Google Sheets公式优化:实现硬盘容量与接口配对统计
修正Google表格硬盘配对统计公式
原公式错误地将容量与接口做了笛卡尔积组合,导致统计时拆分了两者的一一对应关系。以下是修正后的公式,可直接用于D列实现期望的配对分组计数:
=BYROW(A:B; LAMBDA(row; IF(COUNTA(row)=0; ""; LET( interfaces; SPLIT(INDEX(row;1); " | "; 0); capacities; SPLIT(INDEX(row;2); " | "; 0); paired; BYROW(SEQUENCE(ROWS(interfaces)); LAMBDA(i; SUBSTITUTE(INDEX(capacities;i); " GB"; "GB") & " " & INDEX(interfaces;i))); unique_pairs; UNIQUE(paired); counts; BYROW(unique_pairs; LAMBDA(p; COUNTIF(paired; p) & " x " & p)); TEXTJOIN(" + "; 1; counts) ))))
公式逻辑拆解
- 遍历行数据:
BYROW(A:B; LAMBDA(row; ...))逐行处理A列(接口)和B列(容量)的数据 - 空行处理:
IF(COUNTA(row)=0; ""; ...)对空行返回空值,避免计算错误 - 拆分列表:分别拆分A列的接口字符串和B列的容量字符串,得到对应位置的数组
- 配对组合:通过序号遍历,将同一位置的容量(清理
GB空格为GB)与接口拼接成完整配对项 - 去重与计数:提取唯一的配对组合,对每个组合统计出现次数并格式化为「数量 x 配对项」
- 拼接结果:用
+连接所有统计项,生成最终结果
验证示例
以第一行数据为例:
- A列拆分结果:
SATA, SATA/SSD, SATA, SATA - B列拆分结果:
500 GB, 240 GB, 500 GB, 500 GB - 配对后得到:
500GB SATA, 240GB SATA/SSD, 500GB SATA, 500GB SATA - 最终统计结果:
1 x 240GB SATA/SSD + 3 x 500GB SATA,完全匹配期望输出
第二行数据同理,会生成2 x 256GB SATA/SSD + 2 x 500GB SATA的正确结果。
内容的提问来源于stack exchange,提问作者Lucas Góes
相关产品推荐
相关产品推荐

