Excel:基于其他2列参数对行进行分组

时间:2013-05-10 10:08:45

标签: excel

我有2列这样的

maharashtra     mumbai
maharashtra     vashi
maharashtra     amravati
maharashtra     Panvel
Goa             panjim
Goa             magaon

我想在excel中对此进行排序,我应该如何处理

maharashtra as one column                  Goa as another column
mumbai as row in maharashtra column        panjimas as row in goa column
vashias row in maharashtra column          magaon as row in goa column
amravati as row in maharashtra column 
panvel as row in maharashtra column 

1 个答案:

答案 0 :(得分:1)

让我们说你有什么是A1到B6

  • 首先要将所需的标题粘贴到新的行中。让我们做D1:E1。
  • 在列C2中,向下键入0到6的计数索引列表,仅作为示例目的
  • 在以下公式的D1类型中

=INDEX($A:$B,MATCH(VLOOKUP(D$1,$A:$B,2,FALSE),$B:$B,0)+$C2,2)

  • 现在你应该能够将这个公式向下拖动到右边,它将正确读取索引计数列表和标题。

如果在某一行之后没有标题值,则返回“0”。 如果愿意,可以添加if语句使其为空而不是零。

-EXPLAINED:

从内到外看看公式。我们使用Vlookup告诉我们标题的第一个匹配的vaule。 注意*仅当您的数据按A列排序且B列的B列中有唯一值时,此功能才有效。 既然我们有头的第一个值,我们使用MATCH找出哪个行,它会给我们一个数字,然后我们添加索引计数列表以逐步改变行号。现在我们只是INDEX MATCH给我们的行的数据。因此,当您向下拖动此公式时,它将在列表中进一步查找匹配值。

希望这会有所帮助。 -Scheballs

   maharashtra mumbai index maharashtra Goa   maharashtra vashi 0 = INDEX($ A:$ B,MATCH(VLOOKUP(D $ 1,$ A:$ B,2,FALSE),$ B:$ B,0)+ $ C2,2)= INDEX($ A: $ B,MATCH(VLOOKUP(E $ 1,$ A:$ B,2,FALSE),$ B:$ B,0)+ $ C2,2)   maharashtra amravati 1 = INDEX($ A:$ B,MATCH(VLOOKUP(D $ 1,$ A:$ B,2,FALSE),$ B:$ B,0)+ $ C3,2)= INDEX($ A: $ B,MATCH(VLOOKUP(E $ 1,$ A:$ B,2,FALSE),$ B:$ B,0)+ $ C3,2)   马哈拉施特拉邦Panvel 2 = INDEX($ A:$ B,MATCH(VLOOKUP(D $ 1,$ A:$ B,2,FALSE),$ B:$ B,0)+ $ C4,2)= INDEX($ A: $ B,MATCH(VLOOKUP(E $ 1,$ A:$ B,2,FALSE),$ B:$ B,0)+ $ C4,2)   Goa panjim 3 = INDEX($ A:$ B,MATCH(VLOOKUP(D $ 1,$ A:$ B,2,FALSE),$ B:$ B,0)+ $ C5,2)= INDEX($ A: $ B,MATCH(VLOOKUP(E $ 1,$ A:$ B,2,FALSE),$ B:$ B,0)+ $ C5,2)   Goa magaon 4 = INDEX($ A:$ B,MATCH(VLOOKUP(D $ 1,$ A:$ B,2,FALSE),$ B:$ B,0)+ $ C6,2)= INDEX($ A: $ B,MATCH(VLOOKUP(E $ 1,$ A:$ B,2,FALSE),$ B:$ B,0)+ $ C6,2)           5 = INDEX($ A:$ B,MATCH(VLOOKUP(D $ 1,$ A:$ B,2,FALSE),$ B:$ B,0)+ $ C7,2)= INDEX($ A:$ B) ,MATCH(VLOOKUP(E $ 1,$ A:$ B,2,FALSE),$ B:$ B,0)+ $ C7,2)           6 = INDEX($ A:$ B,MATCH(VLOOKUP(D $ 1,$ A:$ B,2,FALSE),$ B:$ B,0)+ $ C8,2)= INDEX($ A:$ B) ,MATCH(VLOOKUP(E $ 1,$ A:$ B,2,FALSE),$ B:$ B,0)+ $ C8,2)

复制并粘贴上面的内容并使用文本到TAB分隔的列,使它们与单元格对齐。