Table of contents
本教程将教你如何删除Excel中的空白处,使你的工作表看起来清晰而专业。
如果你为了美观而故意把空白单元格留在正确的地方,那也不是什么坏事。 但是,在错误的地方的空白单元格肯定是不可取的。 幸运的是,在Excel中有一个相对简单的方法来删除空白,一会儿你就会知道这个技术的所有细节。
如何删除Excel中的空白单元格
在Excel中删除空单元格是很容易的。 然而,这种方法并不适用于所有情况。 为了保证自己的安全,请一定要在 备份副本 的工作表,并在做其他事情之前阅读这些注意事项。
有了存储在保存位置的备份副本,执行以下步骤即可删除Excel中的空单元格。
- 选择你想删除空白的区域。 要快速选择所有有数据的单元格,点击左上角的单元格,然后按Ctrl + Shift + End 。 这将把选择范围扩大到最后使用的单元格。
- 按F5并点击 特别... 或者到 首页 标签> 格式 组,并点击 查找& 选择 > 转到专题 :
- 在 转到专题 对话框,选择 空白 并点击 认可 这将选择范围内的所有空白单元格。
- 右击任何一个选定的空白处,并选择 删除... 从上下文菜单中选择。
- 根据你的数据布局,选择到 向左移动单元格 或 上移细胞 ,然后点击 认可 在这个例子中,我们选择了第一个选项。
就这样,你已经成功地删除了表中的空白处。
提示。
- 如果出了问题,不要惊慌,立即按Ctrl + Z来取回你的数据。
- 如果你只想突出空白单元格而不是删除,你会在这篇文章中找到一些不同的方法:如何在Excel中选择和突出空白单元格。
何时不通过选择空白单元格来删除空单元格
ǞǞǞ 转到专题 > 空白 该技术对于单列或单行来说效果很好,它也可以成功地消除独立行或列范围内的空单元格,就像上面的例子一样。 但是,它可能会对结构化数据造成损害。 为了防止这种情况发生,在删除工作表中的空白时请非常小心,并记住以下注意事项。
1.删除空白行和列而不是单元格
如果你的数据被组织在一个表格中,其中的列和行包含相关的信息,那么删除空单元格会弄乱数据。 在这种情况下,你应该只删除空白行和空白列。 链接的教程解释了如何快速和安全地做到这一点。
2.对Excel表格不起作用
不可能删除Excel表中的任何单个单元格(相对于范围),只允许删除整个表的行。 或者你可以先将表转换成范围,然后再删除空白单元格。
3.可能破坏公式和命名范围
Excel公式可以适应对引用数据的许多改变。 许多,但不是全部。 在某些情况下,引用被删除的单元格的公式可能会被破坏。 因此,在删除空白后,快速查看相关公式和/或命名的范围,以确保它们正常工作。
如何提取一个忽略空白的数据列表
如果你担心删除一列中的空白单元格可能会破坏你的数据,可以让原列保持原样,并将非空白单元格提取到其他地方。 这种方法很方便,当你创建一个自定义列表或下拉数据验证列表时,希望确保其中没有空白。
在A2:A11的源列表中,在C2中输入下面的数组公式,按Ctrl + Shift + Enter键正确完成,然后将公式向下复制到另外几个单元格。 你复制公式的单元格数量应该等于或大于你列表中的项目数量。
提取非空白单元格的公式。
=iferror(index($a$2:$a$11, small(if(not(isblank($a$2:$a$11)), row($a$1:$a$10),""), row(a1)),""
下面的屏幕截图显示了结果。
该公式如何运作
乍一看很棘手,仔细一看,公式的逻辑很容易理解。 用简单的英语来说,C2中的公式如下:如果A2:A11单元格不是空白,则返回该单元格的第一个值。 如果出现错误,则返回一个空字符串("")。
对于体贴的Excel用户来说,他们很想知道每个新公式的具体内容,这里有详细的分解。
你让 INDEX 函数根据指定的行号(不是真实的行号,是范围内的相对行号)从 $A$2:$A$11 中返回一个值。 在更简单的情况下,我们可以把 INDEX($A$2:$A$11, 1) 放在 C2 中,它将在 A2 中获取一个值。 问题是,我们还需要满足两件事。
- 确保A2不是空白
- 返回C3中的第2个非空白值,C4中的第3个非空白值,以此类推。
这两项任务都由SMALL(array,k)函数处理。
small(if(not(isblank($a$2:$a$11)), row($a$1:$a$10),""), row(a1))
在我们的案例中, 阵列 参数是以下列方式动态生成的。
not(isblank($a$2:$a$11))
识别目标区域中哪些单元格不是空白的,并为它们返回TRUE,否则返回FALSE。 产生的TRUE和FALSE数组进入IF函数的逻辑测试。- IF评估TRUE/FALSE数组中的每个元素,如果是TRUE,则返回一个相应的数字,如果是FALSE则返回一个空字符串。
if({true;false;true;false;true;false;true}, row($a$1:$a$10)," ")
行($a$1:$a$10)
只需要返回一个1到10的数字数组(因为我们的范围内有10个单元格),IF可以从中挑选一个数字作为TRUE值。
结果,我们得到数组{1;"";3;"";5;6;"";8;"";10},我们复杂的SMALL函数转变为这个简单的函数。
SMALL({1;"";3;"";5;6;"";8;"";10}, ROW(A1))
如你所见, 阵列 参数只包含非空单元格的数量(注意,这些是 相对 数组中元素的位置,即A2是元素1,A3是元素2,以此类推)。
在 k 由于使用了相对的单元格引用,当你向下复制公式时,行号会以1的增量上升。 因此,在C3.A中,我们使用了ROW(A1),它指示SMALL函数返回1的最小值。 k 将变为ROW(A2),公式将返回第二个非空白单元格的编号,以此类推。
然而,我们实际上不需要非空单元格的数字,我们需要它们的值。 因此,我们继续前进,将SMALL函数嵌套到 行数_num INDEX的参数,迫使它从范围中的相应行返回一个值。
作为点睛之笔,我们将整个结构包围在IFERROR函数中,用空字符串替换错误。 错误是不可避免的,因为你无法知道目标范围内有多少个非空白单元格,因此你将公式复制到更多的单元格。
鉴于上述情况,我们可以建立这个通用公式来提取忽略空白的数值。
{=iferror(index( 范围 ,小(如果(不(是空白( 范围 )), row($a$1:$a$10),""), row(a1)), "")}请注意,ROW($A$1:$A$10)和ROW(A1)是不变的部分,无论你的数据从哪里开始,包括多少单元格,都不会改变。
如何删除最后一个有数据的单元格后的空单元格
含有格式化或不可打印字符的空白单元格可能会在Excel中引起很多问题。 例如,你最终可能会有一个比必要的大得多的文件大小,或者打印出一些空白页。 为了避免这些问题,我们将删除(或清除)含有格式化、空格或未知不可见字符的空行和列。
如何定位工作表上最后使用的单元格
要移动到工作表上包含数据或格式的最后一个单元格,请点击任何单元格并按Ctrl + End 。
如果上述快捷键选择了最后一个有数据的单元格,这意味着剩下的行和列确实是空白的,不需要进一步操作。 但如果它把你带到了一个视觉上空白的单元格,要知道Excel不认为该单元格是空白的。 它可能只是一个由意外按键产生的空格字符,为该单元格设置的自定义数字格式,或一个不可打印的不管是哪种原因,该单元格都不是空的。
删除最后一个有数据的单元格之后的单元格
要清除最后一个有数据的单元格后的所有内容和格式,请执行以下操作。
- 点击你的数据右边的第一个空白列的标题,然后按Ctrl + Shift + End 。 这将选择你的数据和工作表上最后使用的单元格之间的一个单元格范围。
- 关于 首页 选项卡,在 编辑工作 组,点击 清楚 > 清除所有 或右键单击所选内容并单击 删除... > 整个栏目 :
- 点击你的数据下面第一个空白行的标题,然后按Ctrl + Shift + End 。
- 点击 清楚 > 清除所有 关于 首页 选项卡或右键单击所选内容并选择 删除... > 整行都是。
- 按Ctrl + S保存工作簿。
检查已使用的区域,确保它现在只包含有数据的单元格,没有空白。 如果Ctrl + End快捷键再次选择空白单元格,保存工作簿并关闭它。 当你再次打开工作表时,最后使用的单元格应该是最后有数据的单元格。
提示:鉴于Microsoft Excel 2007和更高版本包含超过1,000,000行和超过16,000列,你可能想减少工作区的大小,以防止你的用户无意中把数据输入到错误的单元格。 为此,你可以简单地从他们的视图中删除空单元格,正如在如何隐藏未使用(空白)的行和列中所解释的。
这就是在Excel中删除空白的方法。 感谢你的阅读,希望下周能在我们的博客上见到你