搜索多个值并将单元格下方复制到下一页

时间:2013-03-04 12:16:59

标签: excel-vba excel-formula vba excel

我有一个excel表(原始),有30K +行,有一个Header行,后跟value行,整个excel表行都是这样交替的。

我需要的是将一行中所有唯一标题的列表复制到新表(Desired),并将其所有相关值复制到相应的标题下。

简而言之,我正在尝试整合“Desired”中的“Original”表。

非常感谢任何帮助。

这是我的样本原始表:

Header1  Header6  Header5  Header3  Header4  Header2
1        223      3        4        5        6
Header4  Header3  Header2  Header6  Header5  Header1  Header7
12       53       879      234      546      123      876
Header2  Header3  Header5  Header6  Header4  Header1
abc      sdf      weroit   scfm     Aasd     ertmn
Header5  Header3  Header8  Header6  Header2  Header1  Header7  Header4
123      sdf      564      sdg      nhd      234      vdsq     234

这是我想要的表格:

Header1  Header2  Header3  Header4  Header5  Header6  Header7  Header8
1        6        4        5        3        223
123      879      53       12       546      234      876
ertmn    abc      sdf      Aasd     weroit   scfm
234      nhd      sdf      234      123      sdg      vdsq     564

谢谢 - 拉克什

1 个答案:

答案 0 :(得分:0)

感谢您(a)提供数据样本(甚至空格分隔!)和(b)所需结果(甚至与数据样本一致!)

使用公式,一种选择可能性如下:

  • 处理电子表格的副本。
  • 将整个阵列与现有阵列一起克隆(我猜到I1:P30000)。
  • 删除(升级)'克隆'的第一行。
  • 根据'包含:标题'过滤ColumnI并删除整行。
  • IA一起剪切并插入.. O(以及应该M)。
  • 将'Header1'复制到Q1并向右拖动直到'Header8'。
  • Q2中插入以下公式,并根据需要复制/缩小:

      

    = IFERROR(INDEX($ A2:$ P2,1,MATCH(R $ 1,$ A2:$ P2,0)+1), “”)

  • 选择整个表格内容并复制>选择性粘贴>值。

  • 删除A:Q,左对齐并另存为“所需”。

这对于偶尔使用来说似乎很可行,但显然VBA如果经常需要可以获胜。那么在采取上述步骤时可能打开宏录制器吗?