我想应用一些条件格式,其中行的每个单元格与前一行中的单元格进行比较.如果它不同,则突出显示该行.

我正在使用Excel 2007.这甚至可能吗?如果是这样,有人可以向我提供将其应用于整个数据表的步骤吗?
我在 servlet 中设置了以下代码,以根据字符串值格式化列,但是在尝试编译时出现错误(org.apache.poi.ss.formula.FormulaParseException:指定的命名范围“绿色”不存在于当前工作簿中。)。我应该如何测试字符串值?
SheetConditionalFormatting sheetCF = sheet.getSheetConditionalFormatting();
// Condition 1: Cell Value is equal to green (Green Fill)
ConditionalFormattingRule rule1 = sheetCF.createConditionalFormattingRule(ComparisonOperator.EQUAL, "green");
PatternFormatting fill1 = rule1.createPatternFormatting();
fill1.setFillBackgroundColor(IndexedColors.GREEN.index);
fill1.setFillPattern(PatternFormatting.SOLID_FOREGROUND);
// Condition 2: Cell Value Is equal to yellow (Yellow Fill)
ConditionalFormattingRule rule2 = sheetCF.createConditionalFormattingRule(ComparisonOperator.EQUAL, "yellow");
PatternFormatting fill2 = rule2.createPatternFormatting();
fill2.setFillBackgroundColor(IndexedColors.YELLOW.index);
fill2.setFillPattern(PatternFormatting.SOLID_FOREGROUND);
CellRangeAddress[] regions = {
CellRangeAddress.valueOf("B1:B44")
};
sheetCF.addConditionalFormatting(regions, rule1, rule2);
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个子过程,它将一些条件格式应用于 Excel 中的一系列单元格。我有点卡住了,所以我使用了宏录制器。然而,我无法弄清楚为什么它应用下面的公式,并且当我手动运行代码时它失败了。
下面是录制的宏,它不起作用,而是将格式应用于错误的单元格。任何纠正它的帮助将不胜感激
谢谢
Sub MacroTest()
Range("Table1").Select
'The below formula is wrong but I can't figure out what it should be
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=LEN(TRIM(D15))=0"
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent2
.TintAndShade = 0.399945066682943
End With
Selection.FormatConditions(1).StopIfTrue = False
End Sub
Run Code Online (Sandbox Code Playgroud) 我使用抛光Excel,因此"R [-2] C"是"W [-2] C".
在每个地方我都试过VBA只接受RC表示法.哪个好,因为它可以工作,无论Excel的语言版本.
但对于条件格式,只有"W [-2] C"有效.
编辑:
以下是适用于MY语言版本的代码:
.FormatConditions.Delete
.FormatConditions.add Type:=xlExpression, Formula1:="=WK[-2]-WK[-1]<WK"
With .FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent2
.TintAndShade = 0
End With
Run Code Online (Sandbox Code Playgroud) 如果单元格的值大于80,我需要为单元格着色.例如,给定此数据框称为df:
dput(df)
structure(list(Server = structure(1:2, .Label = c("Server1",
"Server2"), class = "factor"), CPU = c(79.17, 93), UsedMemPercent = c(16.66,
18.95)), .Names = c("Server", "CPU", "UsedMemPercent"), row.names = c(NA,
-2L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
df [2,2]应为红色.我能够使用xtable通过类似的方式更改文本的颜色:
df[, 2] = ifelse(df[, 2] > 80, paste("\\color{red}{", round(df[, 2], 2), "}"), round(df[, 2], 2))
Run Code Online (Sandbox Code Playgroud)
如果我这样做并用kable打印出桌子,它就不会打印出来.任何想法如何在kable输出表中为单元格着色?
试图改进此代码。我所做的工作有效,但看起来很丑,而且非常笨拙。
寻找 ggplot 方法或对用户更友好的方法。将不胜感激的提示和建议。
library("dplyr")
thi <- data.frame(RH = c(1,1,1,2,2,2,3,3,3), T = c(1,2,3,1,2,3,1,2,3), THI = c(8,8,5,7,5,10,5,8,7))
table_thi <- tapply(thi$THI, list(thi$RH, thi$T), mean) %>% as.table()
x = 1:ncol(table_thi)
y = 1:nrow(table_thi)
centers <- expand.grid(y,x)
image(x, y, t(table_thi),
col = c("lightgoldenrod", "darkgoldenrod", "darkorange"),
breaks = c(5,7,8,9),
xaxt = 'n',
yaxt = 'n',
xlab = '',
ylab = '',
ylim = c(max(y) + 0.5, min(y) - 0.5))
text(round(centers[,2],0), round(centers[,1],0), c(table_thi), col= "black")
mtext(paste(attributes(table_thi)$dimnames[[2]]), at=1:ncol(table_thi), padj = -1)
mtext(attributes(table_thi)$dimnames[[1]], at=1:nrow(table_thi), side = 2, las …Run Code Online (Sandbox Code Playgroud) 背景
为了重现性,下面给出了数据集
data <- structure(list(rest1 = c(1, 1, 0, 1, 1, 1, 0, 1, 0, 1),
rest2 = c(1, 0, 1, 0, 0, 1, 1, 0, 0, 0),
rest3 = c(1, 0, 0, 0, 0, 1, 0, 1, 0, 0),
rest4 = c(1, 0, 0, 0, 0, 1, 0, 0, 0, 0),
rest5 = c(1, 1, 0, 0, 0, 1, 0, 1, 0, 1),
rest6 = c(0, 0, 1, 0, 0, 0, 1, 0, 1, 0)),
class = c("tbl_df", "tbl", …Run Code Online (Sandbox Code Playgroud) 我有一个Excel工作表,我想使用条件格式来更改文本颜色.我遇到的问题是它使用遗传学,所以我需要格式化区分大小写.即:
dd=red
Dd=yellow
DD=green
Run Code Online (Sandbox Code Playgroud)
现在我正在使用包含>特定文本的条件格式>格式单元格.这不是区分大小写的,所以任何有两个d的东西,无论如何,都会把颜色变成红色.我试图google并发现了一些东西:
1)使用"确切",当我这样做时说它是不正确的.我尝试过如上所述,但使用过
=EXACT("dd")
Run Code Online (Sandbox Code Playgroud)
而不仅仅是dd.它告诉我使用有效的公式.
2)2003版本,这是我工作的唯一选项,不区分大小写兼容 - 这是真的,如果是这样,很容易弄清楚如何定义我想在新版本中区分大小写?
3)使用宏
我只使用我的旧版Excel进行SOL吗?
我有一个包含 15,000 行和 30 列的电子表格,并且已将条件格式应用于 X 列以在它包含特定文本时为其着色。这按预期工作;但是,我也想立即将相同的格式应用于左侧(W 列)的单元格。这可能吗?
格式化不起作用。查找公式不正确?
注意:因为我永远不知道我可能有多少行,所以我试图将格式应用于整列而不是指定范围的单元格。
编辑:
你是最棒的!非常感谢你们所有人!