在 Excel 中按字母顺序连接两列文本

Concatenating two columns of text Alphabetically in Excel

我正在处理这个机场电子表格 data.Sorry 不知道如何格式化 headers,但第一列是始发地 IATA,第二列是目的地 IATA,第三列是连接路线

Origin IATA,       Dest IATA,       Concatenate Route

LHR                JFK              LHR-JFK
JFK                LHR              JFK-LHR
CAN                PEK              CAN-PEK
PEK                CAN              PEK-CAN
JFK                LAX              JFK-LAX
LHR                DXB              LHR-DXB
DXB                LHR              DXB-LHR

图片版:

现在,我只有 =CONCATENATE(C:C,"-",D:D) 作为公式,但实际上我需要它们按字母顺序连接,这样我就可以将 CAN-PEK 折叠为一条往返路线。

我在这里找到了有类似问题的人:Excel formula to take values from cell range, sort alphabetically and write as a single string

并且我尝试修改已接受答案的代码,但我不断收到错误,因为我不知道自己在做什么。我还尝试了 VBA 代码,在访问中执行它,以及许多其他 Whosebug 解决方案,但我被卡住了。

有谁知道我需要如何编写代码才能让它执行我想要的操作?

谢谢!

使用 Excel 在许多情况下可以对文本字符串使用数学不等式。在 C2 中放:

=IF(A2<B2,A2&"-"&B2,B2&"-"&A2)

然后复制下来

使用公式时,您需要将现有公式用作辅助列,然后添加包含排序结果的最后一列。下面的示例将命名范围 "concat" 分配给连接列,并将命名范围 "order" 分配给排序顺序列。

请注意,如果您的数据位于 Excel 结构化 table 中,则无需使用定义的名称。您可以 select table 列,Excel 将插入正确的语法。

排序列(E列,向下复制)

=COUNTIF(concat,"<="&E2)

A​​lpha 排序列(F 列,向下复制)

=INDEX(concat,MATCH(ROWS($E:E2),order,0))