ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 386|回复: 38

[求助] 根据条件设置单元格为空

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-10-22 10:48 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
各位老师,我想就是在E列里面,当某个批号的数量剩余数量等于0之后,包含这个批号的E列所有单元格都显示为空,需要怎么操作,请教一下各位大咖
捕获.PNG

123.zip

17.1 KB, 下载次数: 21

TA的精华主题

TA的得分主题

发表于 2024-10-28 15:34 | 显示全部楼层
hymjtc 发表于 2024-10-25 15:33
想要这样的效果,能帮我实现吗,谢谢
  1. Sub blank()
  2.     Dim ws As Worksheet
  3.     Set ws = ThisWorkbook.Sheets("Sheet1") ' 修改为你的工作表名称
  4.     Dim lastRow As Long
  5.     lastRow = ws.Cells(ws.Rows.count, "B").End(xlUp).Row
  6.    
  7.     Dim i As Long
  8.     Dim batchNumber As String
  9.     Dim searchString As String
  10.     Dim foundCell As Range
  11.    
  12.     ' 从最后一行开始向上遍历,以避免在删除行时影响未检查的行
  13.     For i = 1 To lastRow Step 1
  14.         batchNumber = ws.Cells(i, "B").Value
  15.         searchString = batchNumber & "还剩0盒"
  16.         
  17.         ' 在D列中查找拼接后的字符串
  18.         Set foundCell = ws.Columns("E").Find(What:=searchString, LookIn:=xlValues, LookAt:=xlWhole)
  19.         
  20.         ' 如果找到了,删除整行
  21.         If Not foundCell Is Nothing Then
  22.             Range("E" & i).ClearContents
  23.         End If
  24.     Next i
  25. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-10-22 11:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
直接在原数据上清除,只能上VBA,函数无法做到。
  1. =LET(t,REDUCE("",E2:E315,LAMBDA(x,y,VSTACK(x,IF(REGEXP(y,"(剩)\K\d+(?=盒)")="0",y,"")))),s,LEFT(UNIQUE(FILTER(t,t<>"",)),6),a,DROP(REDUCE("",E2:E315,LAMBDA(x,y,VSTACK(x,IF(XLOOKUP(LEFT(y,6),s,SEQUENCE(ROWS(s)),0,0)>0,"",y)))),1),VSTACK(A1:E1,HSTACK(A2:D315,a)))
复制代码
微信图片_20241022112856.png

TA的精华主题

TA的得分主题

发表于 2024-10-22 11:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
如果只想对E列作分析,F2填入下面公式即可:
  1. =LET(t,REDUCE("",E2:E315,LAMBDA(x,y,VSTACK(x,IF(REGEXP(y,"(剩)\K\d+(?=盒)")="0",y,"")))),s,LEFT(UNIQUE(FILTER(t,t<>"",)),6),DROP(REDUCE("",E2:E315,LAMBDA(x,y,VSTACK(x,IF(XLOOKUP(LEFT(y,6),s,SEQUENCE(ROWS(s)),0,0)>0,"",y)))),1))
复制代码

TA的精华主题

TA的得分主题

发表于 2024-10-22 11:40 | 显示全部楼层
直接用条件格式把字体颜色变白
  1. =--REGEXP($E1,"\d+(?=盒)")=0
复制代码

image.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-23 09:45 | 显示全部楼层
edwin11891 发表于 2024-10-22 11:38
如果只想对E列作分析,F2填入下面公式即可:

老师,您的公式我复制上去不行呢
捕获1.PNG

TA的精华主题

TA的得分主题

发表于 2024-10-23 10:22 | 显示全部楼层
看这是不是你要的效果

123.rar

19.17 KB, 下载次数: 8

TA的精华主题

TA的得分主题

发表于 2024-10-23 10:31 | 显示全部楼层
=IF(ISERROR(FIND("还剩0盒",E50)),E50,"")

image.png
还是必须在原来得列上操作啊?

TA的精华主题

TA的得分主题

发表于 2024-10-23 10:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
hymjtc 发表于 2024-10-23 09:45
老师,您的公式我复制上去不行呢

EXCEL的话用下面的公式,原公式里面的REGEXP函数为WPS独有,不适用于EXCEL。
  1. =LET(t,REDUCE("",E2:E315,LAMBDA(x,y,VSTACK(x,IF(Textbefore(Textafter(y,"剩"),"盒")="0",y,"") ))),s,LEFT(UNIQUE(FILTER(t,t<>"",)),6),DROP(REDUCE("",E2:E315,LAMBDA(x,y,VSTACK(x,IF(XLOOKUP(LEFT(y,6),s,SEQUENCE(ROWS(s)),0,0)>0,"",y)))),1))
复制代码


如果还有问题,那就是版本的问题了。

TA的精华主题

TA的得分主题

发表于 2024-10-23 12:02 | 显示全部楼层
刚才的搞错了。更新

123.rar

19.08 KB, 下载次数: 8

TA的精华主题

TA的得分主题

发表于 2024-10-23 12:26 | 显示全部楼层
=LET(a,DROP(REDUCE("",E2:E315,LAMBDA(x,y,VSTACK(x,--TEXTSPLIT(y,{"还剩","盒"},,1)))),1),b,FILTER(TAKE(a,,1),TAKE(a,,-1)=0),IF(BYROW(FIND(TOROW(b),E2:E315),COUNT),"",E2:E315))
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 08:48 , Processed in 0.050473 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表