Условно выделите ячейки в Excel на основе значения текста из другого столбца, используя openxlsx R - PullRequest
0 голосов
/ 29 октября 2018

У меня есть книга Excel со столбцами, которые содержат флаги (обновление или нет), которая просматривает два соседних столбца и проверяет, содержат ли две ячейки одинаковые точки данных. Если нет, он помечается как «обновление» в 1-й ячейке, и я хотел бы выделить следующие две ячейки рядом с ячейкой «обновления».

Рабочий пример

library(openxlsx)

animals <- c("Cat","Mice","Dog","Bird","Cat","Cat")
colors <- c("Grey","White","Black","Blue","Black","Orange")
store <- c("Pet Shop","Online","Pets Mart","Walmart","Online","Pets Mart")

df <- cbind(animals,colors,store)

setwd('C:/Users/WORKING DIRECTORY')

write.xlsx(df, file ="test_test.xlsx",row.names = FALSE, sheetName= "Data")

код openxlsx для выделения текстовых значений

df <- loadWorkbook(file = "test_test.xlsx")

highlighting <- createStyle(bgFill = "#fff400")

conditionalFormatting(df, "Data", cols = 1:3, rows = 2:7, type = "contains", rule = "A2=Cat", style = highlighting)

saveWorkbook(df, file = "Test_Output.xlsx", overwrite =  TRUE)

В приведенном выше коде я пытаюсь выделить все ячейки, которые содержат «Cat» в столбце A, а затем выделил следующие две соседние ячейки желтым цветом в столбцах B и C.

Как и в исходной задаче, у меня будет много столбцов в электронной таблице, поэтому помощь в прохождении по всем конкретным столбцам флага «обновления» будет бонусом. По сути, мне придется выделить соседние ячейки рядом с текстом «обновить» в книге Excel (т. Е. B10 = «Обновить», затем выделить C10 и D10, F30 = «Обновить», затем выделить G30 и H30 и т. Д.)

Большое спасибо заранее за помощь!

...