永发信息网

excel表格内自动判断并变更结束状态

答案:2  悬赏:20  手机版
解决时间 2021-03-29 21:28
  • 提问者网友:像風在裏
  • 2021-03-29 00:51
excel表格内自动判断并变更结束状态
最佳答案
  • 五星知识达人网友:千夜
  • 2021-03-29 01:24
如图,根据实际单元格范围调整代码即可.

Sub a()
    Dim iRow As Long, i As Long, j As Long
    iRow = Range("E60000").End(xlUp).Row
    For i = 1 To iRow
        If Range("E" & i) = "No" Then
            For j = 1 To iRow
                If Range("A" & j) = Range("A" & i) Then Range("A" & j).EntireRow.Interior.Color = RGB(255, 255, 0)
            Next j
        End If
    Next i
End Sub追问谢谢,我试过了,还是不行,我按照你的办法,选了单元格,代码复制运行后没有其它变化啊

追答代码中的条件为"No",数据中为"no",大小写不一致.
条件不成立,所以没有变化.
全部回答
  • 1楼网友:玩家
  • 2021-03-29 02:35
这个其实是数据库运算的问题。不是单独用公式=××可以解决的问题。
工具材料:excel
知识点:数据透视表
原理:对相同的订单筛选出状态,针对不同的状态给予赋值,或者变色。
步骤:
1、全选这个表格,菜单插入→数据透视表,确认
2、左方是数据透视表,右方是数据透视表字段选择。
2.1字段选择的左上角是筛选条件,将“状态”列拖进去。随着这个选择,数据透视表左上方出现了一行,a1=“状态”,b1=“全部”(可以手工选择自动结束、未结束等值)
2.2字段选择的右上角是列标题,可以将日期、编码、……等0个或多个以及“状态”拖进去。
2.3字段选择的左下角是航标题,将“订单”拖进去
2.4字段选择的右下角是数值,将“状态”拖进去,值字段设置,将求和改成计数。(可以统计该订单同一状态出现了多少次)
3、完成后手工选择b1=“未结束”。这样,有未结束的订单就出来了,没有未结束的订单号就隐含了。
至于是否对订单上色,就根据个人喜好了。追问非常感谢你的回答,只是按照你说的使用数据透视表后还是无法达到自己想要的结果,现在出现的就是将自动完成和未完成的分类开,但是我想要是的同一个订单只要出现未完成,这个订单所有明细的结束状态都改成未完成,变色也可以,提示也可以,但是需要整个订单所有内容都要凸显,不只是其中一条变色或变更.可以达到这样的效果吗?追答提问者还是坚持要整块变色显示,其实这个真是你所需要的吗,还是你最终工作目标的中间过程?条条大路通罗马,见仁见智。
虽然团友已经替我答复了,我还是继续用数据透视表的思路回答你的追问吧。
1、将数据透视表的结果数据复制粘贴到sheet2 ,建设a列代表订单号,b列代表状态为“未结束”的计数。
2、根据sheet2的结果,对sheet1的订单进行赋值。
在sheet1最后一列写上=IFERROR(MATCH(Sheet1!a1,Sheet4!a:a,0),0),然后下拉填充。
sheet1!a1是你截图表的订单号所在列。
match()是匹配每个订单是否在筛选输出的sheet2中出现,如果出现,返回行号。
iferror()是对公式是否出错进行判断(该订单号是不不存在“未结束”的列表),如果不存在,返回0.
3、然后对这列进行筛选,选择数字>0的行,填色。再筛选,对于=0的行,填另外一个颜色。追问非常感谢,其实并不一定需要变色显示,我的最终目的只是将整个订单只要一条内容含未结束,都视为未结束处理.筛选并不能达到这个结果,因此求助各位.我有按照你说的数据透视表的方法试验了一次,最终出现的结果还是有点问题,可能我的步骤没有做对.还是非常感谢您的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯