6

我在下面创建了一个示例表,它与我在 excel 中的表足够相似,它应该可以用来说明问题。我想简单地在 column1 中的每个不同数据之后添加一行(最简单的方法,使用 excel,谢谢)。

_

当前表:

column1   |   column2   |  column3
----------------------------------
  A       |     small   |  blue
  A       |     small   |  orange
  A       |     small   |  yellow
  B       |     med     |  yellow
  B       |     med     |  blue
  C       |     large   |  green
  D       |     large   |  green
  D       |     small   |  pink

_

所需的表

注意:每个不同的column1之后的空白行

column1   |   column2   |  column3
----------------------------------
  A       |     small   |  blue
  A       |     small   |  orange
  A       |     small   |  yellow

  B       |     med     |  yellow
  B       |     med     |  blue

  C       |     large   |  green

  D       |     large   |  green
  D       |     small   |  pink
4

7 回答 7

18

这完全符合您的要求,检查行,并在 A 列的每次更改中插入一个空白的空行:

sub AddBlankRows()
'
dim iRow as integer, iCol as integer
dim oRng as range

set oRng=range("a1")

irow=oRng.row
icol=oRng.column

do 
'
if cells(irow+1, iCol)<>cells(irow,iCol) then
    cells(irow+1,iCol).entirerow.insert shift:=xldown
    irow=irow+2
else
    irow=irow+1
end if
'
loop while not cells (irow,iCol).text=""
'
end sub

我希望这能让你开始,让我们知道!

菲利普

于 2013-03-14T19:15:49.633 回答
1

选择您的数组,包括列标签,DATA > Outline -Subtotal,在每次更改时:column1,使用函数:Count,将小计添加到:column3,选中 Replace current subtotals 和 Summary below data,OK。

筛选并选择 Column1、文本筛选器、包含...、计数、确定。选择除标签之外的所有可见内容并删除内容。删除过滤器,如果需要,取消组合行。

于 2015-10-20T06:08:07.330 回答
1

如果数据不是连续的(1 2 3 4 但 5 7 3 1 5),这将不起作用,因为在这种情况下您无法对其进行排序。

以下是我为我解决这个问题的方法:

列 A 初始数据,每个数字之间需要包含 5 行 - 5 4 6 8 9

B 列 - 1 2 3 4 5(最终数字表示您需要在 A 列中的数字之间的空行数)只要 A 列中有数字,就在 B 列中复制粘贴 1-5。

跳转到 D 列,在 D1 中键入 1。在 D2 中键入此公式 -=IF(B2=1,1+D1,D1) 将其拖动到与 B 列相同的长度。

返回 C 列 - 在 C1 单元格中键入此公式 - =IF(B1=1,INDIRECT("a"&(D1)),"")。把它拖下来,我们就完成了。现在在 C 列中,我们有与 A 列中相同的数字序列,分别分布为 4 行。

于 2016-05-01T13:21:50.340 回答
0

弄清楚了。

第1步

在 column1 的左侧放置一个新列,然后复制+粘贴以下公式

=B2=B3

=B3=B4

=B4=B5

...一直到底部(假设此处的 B 列是原始问题中的 column1)。

此公式评估下一行是否是 column1 中的新值。根据结果​​,您将得到 TRUE 或 FALSE。将这些结果复制并粘贴为值,然后将“FALSE”替换为 nil,将“TRUE”替换为 0.5

第2步

然后将只有 0.5 的那一列添加到 column1,这将产生下表:

  newcolumn0  |   column1 ("B") |   column2   |  column3
-----------------------------------------------------
              |     1           |     small   |  blue
              |     1           |     small   |  orange
      1.5     |     1           |     small   |  yellow
              |     2           |     med     |  yellow
      2.5     |     2           |     med     |  blue
      3.5     |     3           |     large   |  green
              |     4           |     large   |  green
      4.5     |     4           |     small   |  pink

第 3 步

最后,将 newcolumn0 中的值复制并粘贴到 column1 中值的正下方,然后按 column1 对表格进行排序,您应该在 column1 中每个不同的整数之间有一个空白行,表格如下所示:

    newcolumn0   |  column1 ("B")  |   column2       |  column3
---------------------------------------------------------------
                 |     1           |     small   |  blue
                 |     1           |     small   |  orange
        1.5      |     1.5         |             |
                 |     1           |     small   |  yellow
                 |     2           |     med     |  yellow
                 |     2           |     med     |  blue
        2.5      |     2.5         |             |
                 |     3           |     large   |  green
        3.5      |     3.5         |             |
                 |     4           |     large   |  green
                 |     4           |     small   |  pink
        4.5      |     4.5         |             |

替代解决方案(仍然没有 VBA)

  1. 输入 1 Column 1, Row 2 的值(假设这是 A2)
  2. 将此公式放入 A3=IF(B3=B2,A2,A2+1)并将此公式复制+粘贴到第 2 列的其余部分
  3. 然后将第 1 列中的所有值复制并粘贴到新的临时 excel 表中,删除重复项,然后将 0.5 添加到所有数字,然后将这些值粘贴到原始电子表格中第 1 列数据下方的值下方,将列中的所有数据粘贴为值,然后按该列排序,删除临时 excel 表
于 2013-03-14T19:13:30.297 回答
0

只是一个想法,如果您知道上面提到的小型,中型和大型类别...

在工作表的底部,制作 3 行,分别表示小、中和大,将字体更改为白色,然后按字母顺序排序,在每个部分之间放置一个空白行。

于 2017-01-16T18:34:36.587 回答
0
  1. 在表格“控件”的左侧插入一列
  2. 将数据编号为 1 到 1000(假设有 1000 行)
  3. 将关键字段复制到另一个工作表并删除重复项
  4. 在第 1000 条记录之后,将唯一的行项目复制到主工作表
  5. 在“控制”列中,将数字 1001 添加到所有唯一记录
  6. 对数据(包括添加的记录)进行排序,首先在关键字段上,然后在“控制”上
  7. 添加了一个空行(在关键字段和“控制”中包含数据)
于 2017-03-29T07:17:30.027 回答
-1

我在处理共同基金单位买卖的excel中有一个大文件。工作表中的行数超过 4000。我没有使用 VBA 的经验,想使用基本的 excel。从上面建议的解决方案中得到提示,我尝试通过以下方式解决问题(自动插入空白行):

  1. 我根据控制字段对文件进行了排序
  2. 我在文件中添加了一列
  3. 我使用“IF”函数来确定控制数据何时发生变化。
  4. 如果有变化,结果将显示“是”,否则“否”
  5. 然后我过滤数据以对所有“是”项目进行分组
  6. 我复制了共同基金名称、作品集编号等(无财务数据)
  7. 然后我删除了过滤器并再次对文件进行了排序。结果是在所需位置添加了一行。(它不完全是一个空白行,因为如果它是完全空白的,排序将不会将该行放在所需的位置。)
  8. 排序后,您可以轻松删除所有值以获得完全空白的行。

读者也可以尝试这种方法。

于 2015-11-12T08:12:03.353 回答