如何将Excel两列列表转换为频次矩阵?求高效实现方法
高效实现Excel两列数据转频次矩阵的方法
针对1万行规模的数据,推荐两种远优于你当前方案的高效实现方式:
方法一:数据透视表(最快最简,无需公式)
这是处理这类频次统计最直接的方案,大数据量下性能拉满:
- 选中包含表头的原始数据区域(比如
A1:B10000) - 点击「插入」选项卡 → 「数据透视表」,选择矩阵的放置位置(建议放新工作表)
- 在右侧字段面板:
- 将第一列(Y轴来源字段)拖到「行」区域
- 将第二列(X轴来源字段)拖到「列」区域
- 把任意一列(比如第一列)拖到「值」区域,然后点击值字段设置,选择「计数」
- 瞬间生成频次矩阵,后续数据更新后只需右键刷新即可同步结果
方法二:动态数组函数(Excel 365/2021+ 专属,支持动态更新)
适合需要自动维护、无需手动调整范围的场景:
- 生成Y轴唯一行:在空白单元格(比如
D1)输入=UNIQUE(A:A),自动溢出所有第一列的唯一值作为矩阵行 - 生成X轴唯一列:在
D1上方的单元格(比如E1)输入=TRANSPOSE(UNIQUE(B:B)),转置后自动溢出第二列的唯一值作为矩阵列标题 - 填充频次矩阵:在交叉单元格(比如
E2)输入动态数组公式=COUNTIFS(A:A, D:D, B:B, E:E),直接自动生成整个频次矩阵;也可以用更简洁的合并公式:
输入后自动溢出完整矩阵,原始数据更新时矩阵会自动同步=COUNTIFS(A:A, UNIQUE(A:A), B:B, TRANSPOSE(UNIQUE(B:B)))
优势对比
- 避免了
CONCAT合并字符串的额外计算,减少内存占用 - 无需手动去重、匹配,全程自动处理,操作步骤减少70%以上
- 数据透视表对大数据量的优化远优于函数嵌套,1万行数据处理几乎无延迟
- 动态数组函数实现一劳永逸,无需下拉右拖维护范围
内容的提问来源于stack exchange,提问作者Mahasish
相关产品推荐
相关产品推荐

