【问题标题】:Automatically set Excel number of cell rows between Two of the same variables?自动设置两个相同变量之间的Excel单元格行数?
【发布时间】:2019-12-19 21:20:13
【问题描述】:

我的任务是清理一堆以最混乱的方式组织的 Excel 数据。我正在查看一堆房地产列表,但数据提供者不是按列组织所有内容,而是按行组织所有内容。例如:

Listing 1:

ROOM FOR RENT

blank row

LOCATION

blank row

DATE 

blank row

ADDRESS 

blank row

DESCRIPTION

blank row

CONTACT

blank row

blank row

blank row

Listing 2:

ROOM FOR RENT

and so on.

现在,将数据转换为列是没有问题的,因为大多数数据结构都是合适的,因此每个变量之间存在固定数量的单元格行(请参阅空格)。我只是使用偏移函数,我知道的每14行左右是Listing描述,每16行是位置,每18行是联系人,等等。

但是,数据有时会在列表之间有一个额外的空白空间或少一个空白空间,并且它会完全搞砸偏移量(因为连接后的所有数据都会在前面或后面一行)。我的问题是:如果我有两行完全相同(例如,出租房间),有没有办法可以修复这些行的所有实例之间的单元格行数,并让 excel 相应地添加或减去空白行我设定的任何规则?这对我有很大帮助。

提前致谢!

【问题讨论】:

  • Native Excel 没有办法做到这一点。您可以使用 VBA 轻松做到这一点。但使用 VBA 或 PowerQuery 的完整解决方案可能是更好的方法。
  • 嗨,这似乎是一个疯狂的想法,但既然这个文件有一个准模式,为什么不通过一些文本编辑器运行它来删除空白行、空格等,输入一些制表符或逗号,导出到 csv,导入到 excel,最后享受整洁的文件?
  • 作为一种快速删除空格的方法,您可以从TEXTJOIN() 开始,并使用任何内容作为分隔符(使用任何数据中都没有出现的内容)。确保将 ignore_empty 设置为 TRUE。所以现在你有一个包含所有数据的单元格,由分隔符分隔。使用Text to Columns 将该单元格(包含您的列表)转换为一列数据(如何使用[文本到列][1])[1]:adinstruments.com/support/knowledge-base/…
  • 在你的真实数据中,当每个之间有额外的行时,你怎么知道哪个是哪个?是否有一个单独的具有有效条目顺序的密钥?或者有标签吗。如果有 Key,并且所有条目始终存在,则只需删除所有空行。如果有标签,您也许可以使用它们。
  • @RonRosenfeld 我手动计算了单元格之间的数字哈哈。我想我可能必须学会使用 vba 或其他东西。

标签: excel excel-formula ms-office


【解决方案1】:

我的建议是使用原生 Excel 提供的选项!

  1. 选择包含所有信息的列 2.a在主功能区->主页->编辑(一直到右边)->查找和选择->转到特殊 2.b在菜单中选择“Blanks”,现在A列的所有空白单元格都被选中了。
  2. 主功能区 -> 主页 -> 单元格(就在编辑的左侧) -> 删除 -> 删除工作表行

现在您只有具有填充数据的连续单元格!这也可以用 vba 完成,看起来像这样 按 Alt+F11 打开 vba 编辑器, 在项目窗口左键单击 -> 插入 -> 模块

复制并粘贴以下代码,应该可以正常工作!

Sub Delete_empty_rows ()

Dim c as long

For Every C in Range("A:A")
      If c = "" Then Rows(ActiveCell.Row).EntireRow.Delete
  End if
Next c

End Sub

如果您遇到任何问题,请告诉我!

【讨论】:

    猜你喜欢
    • 2015-06-05
    • 2016-05-30
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 2013-11-14
    • 2021-09-05
    • 1970-01-01
    相关资源
    最近更新 更多