如何在excel中转​​置数据

时间:2015-06-22 02:52:58

标签: excel

我在r(数千件艺术品)中有如下数据集,还附有截图。

A            B

1              Pierre Bonnard

Title          La rue, Orgue de Barbarie    
Medium         oil on canvas
Year of Work       1911
Size           Height 63.2 cm.; Width 89.8 cm.
Sale of        Sotheby's New York: Friday, May 30, 2014 [Lot 00018]
               Impressionist & Modern Art Including Russian Art
Sold For    293,000 USD Premium

2             Eugene Berman

Title         Dormenas, statue et campanile
Medium          oil on canvas
Year of Work     1932
Size           Height 92.1 cm.; Width 73 cm.
Sale of        Sotheby's New York: Friday, May 30, 2014 [Lot 00086]
              Impressionist & Modern Art Including Russian Art
Sold For      12,500 USD Premium

我想转置数据集,如下所示:

artist    title    medium   year.of.work   size   sale.of   sold.for
Pierre    ...
...

我在excel中尝试了转置功能,但它无法正常工作。 enter image description here

1 个答案:

答案 0 :(得分:0)

转置不会为您拥有的数据执行此操作。

不幸的是,你的一些数据值似乎分布在多个单元格上,这使它成为一个问题,但并非不可克服。

让我们首先处理数据值始终在单个单元格中的情况。从有限的数据样本,似乎是艺术家,标题,媒介,工作年份,大小,杂项,估计和销售等属性。

  1. 将输出列表中所需的所有标题放在现有数据下方或其他工作表下方便的行中。

  2. 接下来选择原始数据集A列中的所有数据(从单元格A3到#34;已售出"最后一个 绘画)。

  3. 将数据过滤器应用于此选择(功能区上的数据选项卡,过滤器 按钮)。

  4. 通过单击中的向下箭头过滤A列中的选择 单元格A3,当出现下拉菜单时,取消选择"全选" 选项然后选择"标题"在复选框列表中。您的数据现在将被过滤 A列中的所有条目都具有值" Title"和B栏显示 这些画作的标题,以" La rue,Orgue de。开头 Barbarie"

  5. 选择B列中显示的所有标题并复制到剪贴板。将选择粘贴到单元格 紧接在"标题"作为第1步的一部分创建的标题。您现在已获得标题 输出中的列。

  6. 返回A中的下拉列表。选择其他属性,取消选中" Title"并选择例如"中&#34 ;. Col B现在将具有新属性的值。复制并粘贴到输出列表。重复此步骤,直到其值始终包含在单个单元格数据中的所有属性都已添加到输出列表中。

  7. 可以通过选择下拉列表中的所有数值来选择艺术家 - 可能最容易检查"全选"然后取消选中非数字。或者,如果您有冒险精神,可以尝试使用复选框列表上方显示的下拉选项中的数字过滤器。

    分布在多个单元格上的数据值需要进行处理,以便每个数据值都包含在单个单元格中。这是相当简单的,但涉及使用一些公式。

    1. 确保"全选"选项在A列数据过滤器上检查
    2. 在单元格D3中添加以下公式=AND(NOT(ISBLANK(B4)),ISBLANK(A4))
    3. 将此公式复制到D列中的所有单元格(单元格D3 downwawrds到原始数据的末尾)。 D列中的值现在为TRUEFALSETRUE表示列B中的数据值在下面的单元格中继续。
    4. 在单元格C3中添加公式=B2,在单元格C4中添加公式=IF(D4,B4&C5,B4)。将C4中的公式复制到C列的其余部分,以便覆盖所有原始数据。 C列中的值为0(如果Col B中没有任何内容)或B列中的值(如果数据未在下面的单元格中继续)或B列中的值以及任何连续单元格(如果B列中的值)继续在下面的单元格中)。 C列中的公式可以满足数据值可能分布在B列中超过2个单元格的可能性(尽管示例数据没有显示任何这样做)。
    5. 让你的数据成形,现在几乎和以前一样 选择了可以分布在多个单元格上的数据类型,例如"描述"在上一步骤4中,选择具有来自C列而不是B列的数据值的单元格并使用“粘贴值”而不是仅在应用上一步骤5时粘贴。

      如果您可以按照上面的内容进行操作,那么您可以先将公式放入Cols C和D,然后专门从C列复制数据值(记住需要粘贴值而不是粘贴)。

      上面有一个基本的假设,即输出中所需的每个属性(例如标题,描述等)在每个绘画的A列中只出现一次且仅出现一次。这看起来来自有限的数据样本,但如果不是,则输出数据将在行间不对齐。例如如果原始数据中缺少图片5的标题,则输出中显示的图片5的标题将是图片6的标题,图片6的标题将是图片7的标题等。

      还有其他方法可以获得最终结果,这些方法使用公式来检测B列中每个数据项的位置,然后使用=INDIRECT=ADDRESS函数,但是上面的方法可能更简单,更容易理解。