我正在使用這個函式在單元格中寫入值。
例如,如果單元格具有特定的顏色,則將值寫入單元格并且此功能很慢。如果單元格具有特定顏色,是否有任何快速函式可以在單元格中寫入值。
還有一個問題是這些格式根據條件格式規則更改,但是當它更改時,公式不會相應地更改值。它應該是動態的,它的單元格顏色會發生變化,然后公式必須遵守。
我嘗試過以下功能,但速度很慢。
=IF($B2<>"",IF(GETBACKGROUNDCOLOR(cell("address", Data!P3)) = "#f4cccc", "MISSING",IF(Data!P3="P","Pending","")),"")

筆記:
- 在此示例腳本中,自定義函式是
=SAMPLE(Data!P3:AM,"Data!P3:AM",B2:B). 并且, 的論點Data!P3:AM,"Data!P3:AM",B2:B。第二個引數是字串型別。請注意這一點。 - 當我使用您的示例電子表格測驗我提議的腳本時,結果值很快就會顯示出來。但我不確定你的實際情況。當處理速度不快時,請重新打開電子表格并再次測驗。
- 此示例腳本適用于您的示例電子表格。當您的實際電子表格與示例電子表格不同時,可能無法使用該腳本。請注意這一點。
參考:
- 地圖()
uj5u.com熱心網友回復:
您可以稍微更改您的函式(注意s最后的)以使用范圍而不是單個單元格:
function GETBACKGROUNDCOLORS(range){
return SpreadsheetApp.getActiveSheet().getRange(range).getBackgrounds();
}
然后ARRAYFORMULA與它一起使用:
=ARRAYFORMULA(
IF(
B2:B27 = "",,
IFS(
GETBACKGROUNDCOLORS("Data!P3:AM28") = "#f4cccc",
"MISSING",
Data!P3:AM28 = "P",
"Pending",
True,
)
)
)
這兩個步驟都將顯著提高性能。
請參閱示例電子表格中的陣列解決方案表。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/406034.html
標籤:
