作者:绿色风
分类:
时间:2022-08-17
浏览:220
楼主 嘉昆2011 |
问题陈述 :
动画效果:
解决思路及步骤: 1,利用字典提取不重复的产品,关键点:Join(Dic.keys,",")放入数据有效性下拉列表中,省略辅助列寄存- Private Sub Worksheet_SelectionChange(ByVal Target As Range)
- Dim Dic As Object, Arr
- If Target.Address = "$F$2" Then
- Set Dic = CreateObject("Scripting.Dictionary")
- Arr = Sheet1.Range("C2:C" & Sheet1.Cells(Rows.Count, 3).End(3).Row).Value
- For i = 1 To UBound(Arr)
- Dic(Arr(i, 1)) = ""
- Next
- With Target.Validation
- .Delete
- .Add Type:=xlValidateList, Formula1:=Join(Dic.keys, ",")
- End With
- Set Dic = Nothing
- End If
- End Sub
2,利用MQ-SQL参数查询的特性,查询最新价格- Select Top 1 单价 as 最新单价
- From [Sheet1$B:D]
- Where 产品=?
- Order by 日期 Desc
3,条件格式- =AND($C2=$F$2,$D2=$G$2)
附件:
最新单价.rar
|
2楼 yjzstar |
昆哥,这里存在一个问题,两个以上相同的产品,价格相同,日期不一样的时候,会有不是最新单价也会复合条件格式而被标红! |
3楼 嘉昆2011 |
看来条件格式要更新下 ,- =$B2=LARGE(IF(($C$2:$C$20=$F$2)*($D$2:$D$20=$G$2),$B$2:$B$20),1)
动画效果:
|
4楼 icenotcool |
|
5楼 LOGO |
向昆哥学习...
另补充一个公式法 最新单价公式:
- =SUMPRODUCT((B2:B20=DMAX(B1:C20,1,F1:F2))*(C2:C20=F2),D2:D20)
条件格式公式:
- =AND($B2=DMAX($B$1:$C$20,1,$F$1:$F$2),$C2=$F$2)
|
6楼 海洋之星 |
谢谢分享, |
7楼 dgxsdr |
VBA+SQL很强大 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一