如何在Excel中交换单元格内的内容

我有一个excel列1000 +url列表,我想通过交换位置的参数编辑结构

例如:

原始结构

Www.example.com/test.htm?name=John&age=21&city=London&unique_id=1425&dept=cs

在这里,我希望参数“unique_id”放在“age”参数之前。

预期的结构

Www.example.com/test.htm?name=John&unique_I'd=1425&age=21&city=London&dept=cs

有没有一个公式或方法,我可以在该列上运行

你可以用下面的公式来做…但是它有一些古怪的行为取决于你的url的可变性:

=SUBSTITUTE(SUBSTITUTE(A1,"&age=",MID(A1,FIND("&unique_id=",A1),FIND("&",A1&"&",FIND("&unique_id=",A1)+1)-FIND("&unique_id=",A1))&"&age="),MID(A1,FIND("&unique_id=",A1),FIND("&",A1&"&",FIND("&unique_id=",A1)+1)-FIND("&unique_id=",A1)),"",2) 

所以核心是:

  • MID(A1,FIND("&unique_id=",A1),FIND("&",A1&"&",FIND("&unique_id=",A1)+1)-FIND("&unique_id=",A1)) &unique_id=xxxxxstring
  • 然后,我们使用unique_idstringreplace现有&age=string,并将&age=卡住
  • 然后,我们删除第二个出现的&unique_id=xxxxxstring,用""替代 – 所以如果我们已经在url中引入了unique_id,我们将删除原来的

这样做与VBA会更强大 – 但它似乎是一个很好的公式挑战:-)