我的数据中有成对的...AB 等于 BA。所以如果我的表格是
AB 20
BD 20
CF 10
EF 10
GH 15
BA 10
FE 20
我正在寻找一种方法来总结这些数据,这样我就能知道
BD 20
CF 10
GH 15
阿巴 30
埃菲 30
只要我知道 A 和 B 的总数以及 E 和 F 的总数,ABBA 和 EFFE 就不重要。
答案1
我假设您说的是往返旅行费用,由于单行道、过路费、海拔、时区、风和/或水流等原因,各个航段的费用不等。这并不影响答案;它只是有助于理解问题。
我还假设您的数据如图所示,在列中有“ A-B
”、“ B-D
”等, A
在列中有相应的数值(成本) B
(并且所有其他列都可用)。
将单元格设置C1
为=FIND("-", A1)
。(当然,如果您的数据从 行 下方开始1
,请相应地向下调整行号。)这将找到单向路线指示符中的连字符。请参阅下面的注释。
将单元格设置D1
为=RIGHT(A1, LEN(A1)-C1) & "-" & LEFT(A1, C1-1)
。这将生成反向路线;例如,如果A1
为“ A-B
”,D1
则将计算为“ B-A
”。
笔记:如果你的列A
数据确实全部是以下形式(单个字母) (连字符) (单个字母),那么C
将始终为 2,LEN(A1)
将始终为 3,并且您可以简化D1
为=RIGHT(A1, 1) & "-" & LEFT(A1, 1)
。
将单元格设置E1
为=IF(A1<D1, A1 & "-" & D1, D1 & "-" & A1)
。这将生成往返路线;例如,E1
将计算为“ A-B-B-A
”。请参阅下面的注释。
将列中的公式向下拖动/填充C
以E
覆盖所有数据。
笔记:列 E
包含已排序往返航线,因此E6
也包含“ A-B-B-A
”(而不是“ B-A-A-B
”)。
按列排序 E
。(您可能想先复制数据;例如,复制到另一个工作表。)如果数据上方还没有空白行,则插入一个空白行。
现在将 设置F2
为=IF(E2=E3, "", IF(E1=E2, E2, A2))
和G2
设置为=IF(E1=E2, G1+B2, B2)
。向下拖动/填充以覆盖所有数据。您的工作表应如下所示:
按列进行过滤F
,并滤除空白:
这不会验证您的数据。如果您有多行显示“ P-Q
”,此解决方案将简单地将它们全部相加,并将总和报告为“ P-Q-Q-P
”的总数。
如果您想先对单程路线进行排序,然后再对往返路线进行排序,则可以添加该功能。