如何提取节点弧矩阵中存在的弧的坐标列表?
解决节点弧矩阵转弧列表的问题
方法1:Excel公式法(适配2019/365版本)
假设你的矩阵结构为:
- A列(A2:A10)是起始节点(如R01、R02)
- 第一行(B1:J1)是目标节点(如R01、R02)
- B2:J10是带数值的弧记录区域
单个单元格合并所有弧
在空白单元格(如L2)输入公式,Excel 365直接回车,旧版本按Ctrl+Shift+Enter执行数组运算:
=TEXTJOIN(", ", TRUE, IF(B2:J10<>"", "("&$A2:$A10&","&B$1:J$1&")", ""))
下拉公式可生成每一行节点对应的所有弧。
自动溢出单独的弧列表(仅Excel 365)
用动态数组公式直接生成所有弧的独立列表:
=LET( rows, A2:A10, cols, B1:J1, mat, B2:J10, all_arcs, IF(mat<>"", "("&TOROW(rows,1)&","&TOCOL(cols,1)&")", ""), FILTER(TOCOL(all_arcs,1), TOCOL(all_arcs,1)<>"") )
方法2:Power Query批量提取(适合大数据量)
- 选中整个矩阵区域(含行/列标题),点击「数据」→「从表格/区域」(勾选「我的表格有标题」)。
- 在Power Query编辑器中,点击「转换」→「逆透视列」→「逆透视其他列」,生成包含行节点、目标节点、数值的三列数据。
- 添加自定义列,公式为:
"(" & [你的起始节点列名] & "," & [Attribute] & ")"。 - 筛选掉
Value列为空的行,删除冗余列,只保留自定义的弧列。 - 点击「关闭并上载」,即可得到完整的弧列表。
关于IF+CONCATENATE失效的原因
CONCATENATE不支持数组运算,只能拼接单个单元格,无法批量遍历矩阵区域。- 普通IF函数仅能判断单个单元格,未启用数组运算时无法批量识别所有带数值的单元格。
内容的提问来源于stack exchange,提问作者Scuffed Badger
相关产品推荐
相关产品推荐

