Excel函数将两列排序为一列

Excel函数将两列排序为一列,excel,excel-formula,Excel,Excel Formula,我有两个txt文件。第一个有这样的数据 A B C D E A1 A2 +++ B1 B2 B3 +++ C1 C2 C3 C4 +++ +++ E1 E2 E3 E4 E5 E6 第二个有这样的数据 A B C D E A1 A2 +++ B1 B2 B3 +++ C1 C2 C3 C4 +++ +++ E1 E2 E3 E4 E5 E6 我希望他们像这样分类 A,A1 A,A2 B,B1 B,B2 B,B3 ... ... ... D, E,E1 E,E2 E,E3 E,E4 E

我有两个txt文件。第一个有这样的数据

A
B
C
D
E
A1
A2
+++
B1
B2
B3
+++
C1
C2
C3
C4
+++

+++
E1
E2
E3
E4
E5
E6
第二个有这样的数据

A
B
C
D
E
A1
A2
+++
B1
B2
B3
+++
C1
C2
C3
C4
+++

+++
E1
E2
E3
E4
E5
E6
我希望他们像这样分类

A,A1
A,A2
B,B1
B,B2
B,B3
...
...
...
D,
E,E1
E,E2
E,E3
E,E4
E,E5
E,E6

请注意,第一个txt文件中的D列没有匹配的子列!如何对这些数据进行排序?

这不是一个真正的Excel问题,但我过去经常不得不处理数据文件,Excel可以用于这些一次性的数据转换问题

将第一个加载到工作表中,添加一个名为“Type”的列,并用“Primary”填充它,如下所示:

将第二个文件导入到图纸中,添加一个名为“Type”的列,并使用公式填充Type列。从你的例子中,我假设你有一些“垃圾”分隔符,这个公式可以标记它们

示例数据的公式如下所示。您可以根据实际数据更改文字或逻辑

=IF(A7="+++","Ignored","Secondary")
将两个表(剪切和粘贴即可)合并到一个新的工作表中,并按键对它们进行排序,这样您就可以得到以下工作表:

现在我们可以通过添加两列公式来获得复合键。使用此公式添加“派生主”列

=IF(ROW(B2)>2,IF(B2="Primary","A2,C1),"")
(上面的公式假设您有一个像我的示例一样的标题行,数据从第二行开始。)

添加使用此公式的“复合键”列:

=IF(B2="Ignored","",IF(B2="Primary",IF(C2=C3,"", C2 &","),C2 &","&A2))
基本上,上述逻辑检查三种情况之一:

  • “忽略”类型:在复合键中不显示任何内容
  • “辅助”类型:将“派生主”与“键”组合
  • “主”类型:如果下一行的派生主值与当前派生主值匹配,则不显示任何内容,否则显示派生主值。(即没有辅助项的单例主键。)
  • 然后,您的工作表将如下所示:

    您可以复制最后一列,并对其排序以删除空格

    我猜您的实际情况有很多数据,垃圾分隔符的值可能会有所不同,因此根据需要调整公式。希望有帮助。

    因为Excel不“排序文本文件”,所以这看起来不像是Excel的问题。如果导入两个文本文件,则有两个不同的表。您的问题是如何组合表,然后对它们进行排序,生成有问题的键,但删除键“X”的特例,其中还有“X,YY”?