1

我有一个包含 8 列的大型 Excel 电子表格。简化后看起来像这样:

Identity column1  column2  column3  column4  column5  column6  column7
     1     tk=tr   cont=fb  sourc=a  camp=b    med=c    nm=he   ad=fst
     2     camp=a  cont=fb  sourc=a   med=b     NA        NA     NA
     3     vid=tr  sourc=b  camp=b    med=c   cont=fb     NA     NA

我需要对其进行组织,以使包含的所有单元格cont都在同一列中,包含的所有单元格camp都在同一列中,依此类推。但是,它们只是部分匹配,例如,您可以看到一些 saycamp=b和一些 say camp=a。我需要每列中只有一种类型的字符串,一种用于cont,一种用于sourc,一种用于camp,一种用于med

"identity" 列的格式正确,trkandvid值是不必要的,但它们只出现在某些行中。

我研究了条件格式、高级过滤器和排序、按自定义列表排序,以及用于 excel 的 vba。我很高兴转换为 R 文件并在那里工作。

我希望输出看起来像这样:

Identity  column1  column2  column3  column4  column5  column6  Column7
   1       cont=fb  sourc=a  camp=b    med=c    NA        NA       NA
   2       cont=fb  sourc=a  camp=a    med=b    NA        NA       NA
   3       cont=fb  sourc=b  camp=b    med=c    NA        NA       NA

cont=、sourc=、camp= 和 med= 值是我在最终产品中唯一需要的值,所以如果我可以忽略/删除其他值来制作它会很棒,但并非完全必要。

非常感谢您提供的任何帮助!

4

1 回答 1

1

你想要的可以做INDEX/MATCH

在四列中的每一列中使用以下公式:

=INDEX(B2:H2,MATCH("cont=*",B2:H2,))

=INDEX(B2:H2,MATCH("sourc=*",B2:H2,))

=INDEX(B2:H2,MATCH("camp=*",B2:H2,))

=INDEX(B2:H2,MATCH("med=*",B2:H2,))

并向下填充

在此处输入图像描述

于 2019-07-03T15:36:09.907 回答