将单元格中的分隔文本转换为具有唯一标题的表格

时间:2014-04-22 23:11:37

标签: excel excel-formula unique cell delimiter

我有一个包含两列和大约500行的Excel表。第一列是公司名称,第二列是合作伙伴列表,以分号分隔。例如,一行看起来像[Apple] [Foxcomm;三星;微软;英特尔]。每个合作伙伴单元的合作伙伴数量都是未知数,有些合作伙伴出现在多个公司中。

我想要完成的是将这个数据集合重新组织到一个新表中,其中每个列标题是一个合作伙伴(唯一,不重复),并且下面列出了共享该合作伙伴的每个公司。 / p>

到目前为止,我已经找到了一个基于分隔符分号来分割文本的公式,但是它将它传播到整行(可预测)。我也找到了通过基本上切换行和列来转录表的公式,但我不确定我是否还需要这样做。我的主要问题似乎是找到在Google上搜索我的搜索的正确方法!

如何让Excel完成我想要完成的任务?或者,显示此信息的更好方法是什么?

2 个答案:

答案 0 :(得分:0)

如果优雅和可用性不重要,我会建议你,为了这个例子,你可以想象你的起始片叫做'sheet foo':

  • 对列使用分隔文本(它们以分号分隔)
  • 然后你需要使用= LEFT和= MID函数来修剪 括号和分号。
  • 然后复制粘贴值。
  • 右键单击'sheet foo',转到copy \ move,然后创建一个副本,我们将 称之为'表格栏'
  • 将“工作表栏”中的所有数据转换为表格(此步骤不是 绝对必要,但它会帮助我解释)并命名表 '表栏'
  • 返回'Sheet foo'
  • 然后使用每列上的删除重复项工具
  • 然后将每列复制并粘贴到以下列的末尾 直到你有一个很长的专栏。 (所以你会复制让我们说 B2:B500,并将其粘贴在C501,然后复制C2:C1000粘贴到 D501等等,如果它们的行数不一样,那也没关系 可能出现了不同的重复数据)
  • 重新应用删除重复项工具,您应该有一个列 具有“Sheet foo”
  • 中合作伙伴的所有独特价值
  • 复制,粘贴和移调(ALT - E - S - E - 按顺序输入,而不是输入 一次)与标题在同一行
  • 现在,您将拥有所有可能的合作伙伴作为列标题 'Sheet foo'
  • 删除'Sheet foo'中包含每个公司的所有列 伙伴;这会留下您的列结构,因此您的标题是

|公司|第一个伙伴|第二个伙伴|第三个伙伴| ...... |最终合作伙伴|

  • 然后在每个公司标题下做一个

=COUNTIF(FirstRowOfTableBar, CompanyHeader)

  • 并锚定'FirstRowOfTableBar'在X轴'CompanyHeader'上 Y轴。所以它看起来像

=COUNTIF('Sheet bar'!$B2:$B10, 'Sheet foo'!B$2)

  • 然后为所有公司的行以及所有行复制并粘贴此公式 合作伙伴的标题。
  • 现在你有一个0,公司\合作伙伴关系不存在, 和公司\合作伙伴关系存在的1。

注意: 如果公司列以某种方式改变顺序,这可能会非常错误,在这种情况下,可能需要一个涉及索引\匹配,偏移或可能是数组'= IF'公式的更丑陋的解决方案。

答案 1 :(得分:0)

我担心你可能会做更多的工作而不是真正必要的工作。我认为你有大部分组件,因为我不确定哪里出了问题,图像可能会有所帮助:

SO23231949 example

然后,假设Apple在A2中,

=IFERROR(IF(SEARCH(C$1,$B2)>0,C$1,),"")  
C2中的

复制到右边(我认为就GF2而言)然后将所有这些公式复制到适合的位置。

最好在删除重复项之前进行TRIM(切换顺序为3和4。)