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

时间:2014-12-11 07:57:23

标签: excel excel-vba excel-formula vba

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

例如:

原始结构

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

在这里,我想要参数" unique_id"放在"年龄"之前参数..

预期结构

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

我是否可以在该列上运行公式或方法

1 个答案:

答案 0 :(得分:1)

你可以在下面这样的公式中做到这一点......但它有一些古怪的行为,取决于你的网址的可变性:

=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=xxxxx字符串
  • 然后我们SUBSTITUTE现有的&age=字符串,其中unique_id字符串被&age=卡住了
  • 然后我们通过用&unique_id=xxxxx替换它来删除第二次出现的""字符串 - 所以如果我们在网址中带来了unique_id,我们就会删除原来的

使用VBA执行此操作会更加强大 - 但这似乎是一个很好的公式挑战: - )