gpt4 book ai didi

sql-server - Excel + TSQL(在条件下突出显示单元格的宏)

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

我使用 SQL Server 2012 数据库。

每天早上我都会得到一张带有计算结果的新表格。格式为

productID - countryID - 2001 - 2002 - 2003

我有 2000 种产品,每种产品在 200 个国家/地区销售。大约 400000 行。

我也有与之前计算相同格式的表格。

我的任务是比较新旧结果并创建一个输出 Excel 文件,其格式为:

计算 - productID - countryID - 2001 - 2002 - 2003

旧 - 1 - CA - 0.02 - 0.89 - 5.3

新 - 1 - CA - 0.03 - 0.90 - 5.3

所以我按产品和国家分组,并比较每年的值(value)。

我的问题是我需要突出显示结果差异超过 2% 的那些单元格。

有人知道怎么做吗??

多谢。

最佳答案

假设每一行前面都是旧行,您需要选择新行,并与它们正上方的结果进行比较。最简单的方法是添加过滤器,过滤新的,选择结果,添加条件格式,然后取消过滤结果。

'Select everything and add a filter
Cells.Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$C$10").AutoFilter Field:=1, Criteria1:="New"
'Select the newly filtered results
Cells.Select
'Apply a conditional format (substitute B2 for the first filtered cell, and B1 for the cell above it)
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=IF(B2>(B1*1.2),TRUE,FALSE)"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorLight2
.TintAndShade = 0.799981688894314
End With
Selection.FormatConditions(1).StopIfTrue = False
'Remove the filter
Cells.Select
Selection.AutoFilter

创建一个新宏,并将上面的代码粘贴到其中,它应该可以工作。

关于sql-server - Excel + TSQL(在条件下突出显示单元格的宏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19771422/

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