2016-09-13 68 views
0

我有一个包含32,000行数据的电子表格。每行包含一些键值对。某些键值对在某些行中缺失。当键值对丢失时,它将被右侧的键值对替换。出于这个原因,这些列是错位的。我希望所有具有相同键的键值对位于同一列中。Excel中未对齐的列

下面是截图能说明问题:

Misaligned columns

我怎样才能实现这种转换程序?

+1

一般情况下,最好是不贴照片,如果你能避免它。很多人都将图片网站封锁,并且无法帮助您。 – SandPiper

+0

有趣。很高兴知道,谢谢。 – j8d

+0

我不明白这些列是如何错位的。此外,目前还不清楚你的方法是从红色变为绿色。您似乎正在使用红色第一行中的属性成为绿色中的第一行。你排除其余的吗?把它们放在一个列表中?如果它存在,你是否按照以前的位置填充它们? – rajah9

回答

0

我会有一个0选项(或NA)选项。因此,不要将尺寸值设置为不存在,请将尺寸值设置为0.要轻松确定哪些尺寸值没有此值,可以执行过滤器 - >排序 - >复制粘贴,然后初始化所有他们作为默认值。它会扩大您需要存储的数据量,但如果您需要更新行,将来可能会更容易。

+0

如果数据来自OP无法控制的txt文件或其他来源? –

+0

我假设OP有一种方法来将例如一长串文本(IE“color:blue,size:big,quality:3,taste:salty”)转换为基于列的格式,其中每个元素有自己的列。或者OP可以用某种方式操纵数据。要检查这样的项目是否存在(IE大小)OP可以使用= if((find(“size”,cell reference)> 0,不要做任何事情,做点什么) – bdpolinsky

0

右键单击图纸>View Code>从下面粘贴代码(未经测试),运行(F5)

Sub align() 
    Dim cell As Range, i As Long, likes() 
    likes = Array("", "color: *", "size: *", "quality: *", "taste: *") 
    For Each cell In Range("B2").CurrentRegion.Resize(, 1) 
     For i = 1 To UBound(values) 
      If Not cell(, i) Like likes(i) Then cell(, i).Insert xlToRight 
     Next 
    Next 
End Sub