gpt4 book ai didi

Excel - 删除两列之间的所有一对一行

转载 作者:行者123 更新时间:2023-12-04 20:47:12 25 4
gpt4 key购买 nike

问题:我有 A 列和 B 列。A 列是可预测的,A 列有数千行。 B 列的每个 A 列都有不同的行。例如,A 列的值 REQ_000021 可能在 B 列中有 5 行。这些都可以。我需要删除的行是每个 A 列只有一个 B 列的行。

我知道这不是人们做的典型事情,所以我找不到一个 VB 脚本来做这件事。
如果网站允许,我会发布图片。首先需要15个代表点。

编辑:
我刚刚学会了如何在 stackoverflow 上换行,所以这里是:

上校 A 上校 B
----------------------------------
斯科特我们
德国
西类牙
----------------------------------
布莱恩美国
----------------------------------
标记我们
----------------------------------
意大利
蒂姆·葡萄牙
爱尔兰
----------------------------------

删除 brian 和 Mark,因为 A 列和 B 列各有一行。
让 Scott 和 Tim 一个人呆着,因为每列 A 行有不止一个 B 列行。请记住,Scott 和 Tim 的 A 列是大的合并行。
这就是我想要完成的。

编辑:
根据斯科特的回答,这是输出:
为了让其他正在查看此内容的人清楚,我为一些标记添加了标题。

output from Scott's solution

编辑:
以下 VB 脚本将删除 C 列中具有“DELETE”值的任何行。
我在 Excel 中将它用作宏。对于那些刚接触宏的人,请在 Excel 2007 中启用开发人员 View 以访问可让您切换到 VB 屏幕的 View 。

子 deleteDeleteString()
变暗为范围,单元格为范围,删除为范围
将 strCellValue 调暗为字符串
设置 rng = Intersect(Range("C:C"), ActiveSheet.UsedRange)
对于每个单元格

strCellValue = (cell.Value)
'如果在 C 列的单元格中发现 DELETE 大于 0 次,则删除它的整行
如果 InStr(strCellValue, "DELETE") > 0 那么
如果 del 什么都不是,那么
设置 del = 单元格
否则:设置 del = Union(del, cell)
万一
万一
下一个单元格
出错时继续下一步
del.EntireRow.delete
结束子

最佳答案

这是基于您对数据格式的编辑的新公式。

将以下公式放在 C1 中并沿列向下运行以获取要删除的行:

=IF(OR(ISBLANK(A1),ISBLANK(A2)),"","DELETE")

您可能希望也可能不希望首先取消合并 A 列中的单元格,但考虑到 Excel 如何处理合并单元格的规则,这无关紧要。我在您提供的数据集上对此进行了测试,无论是否合并单元格都有效。

我不提供 VBA 解决方案,因为您在这里不需要。运行此公式,而不是在 C 列上过滤“删除”并删除您的行。

关于Excel - 删除两列之间的所有一对一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11108631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com