【问题标题】:Google Sheets: Conditional formatting in an array based on source column of separate sheetGoogle表格:基于单独表格的源列的数组中的条件格式
【发布时间】:2020-12-15 17:45:44
【问题描述】:

我有一张名为 Equipment 的工作表,其中包含两列 G“购买日期”和 H“安装日期”。名为 December 的单独工作表是一个日历,当日期匹配时,它会填充来自 Equipment 的数据。

在下面的示例中,December 的 I3 是 12/01/2020

=ARRAYFORMULA(IFERROR(INDEX(Equipment!A2:D,SMALL(IF(I3=Equipment!G2:H,ROW(Equipment!G2:H)-1),1))))

我想在 12 月 中指明数据是“购买日期”或“安装日期”,最好通过条件格式(一个是红色字体,另一个是蓝色字体)。我能想到的唯一解决方案是强制用户有两个单独的行,一个用于“购买日期”,一个用于“安装日期”。是否可以避免这样做?

Equipment

December

【问题讨论】:

标签: google-apps-script google-sheets spreadsheet


【解决方案1】:

我想出了一个您可能想尝试的答案。但它确实涉及一周中每一天的帮助列。见my sample sheet here。为此,我在最右边使用了 AS 到 AW 列。在AS中,我把这个公式:

=ArrayFormula(COUNTIFS(Equipment!$A$2:$A,D5:D,Equipment!$G$2:$G,$D$3))

这会在“设备”选项卡中为与该行具有相同项目名称且购买日期与日历中这一天的日期相同的记录执行 COUNTIFS。这将返回 1 或 0。

然后,如果 AS=1(购买日期)列,则使用条件格式规则将项目名称(在 D 列中)更改为红色文本,否则将更改为蓝色文本。如果您将此列中的所有文本预定义为红色(或蓝色),则整个列只需要一个 CF 规则,从而更容易设置。您已经为日期标题设置了 CF 规则,因此它们可以覆盖分配给列的默认字体颜色(红色或蓝色),而无需其他规则。

另请注意,我在 D5(和 I5、N5...)中找到了您的公式的替代方案:

=iferror(query(Equipment!$A$2:$I,"Select A,B,C,D 
    where (G = date '"& text(D3,"yyyy-mm-dd") & "' 
        or I = date '"& text(D3,"yyyy-mm-dd") & "') order by A",0))

这将返回当天的所有结果,并使用一个公式。

【讨论】:

  • 谢谢!我从中学到了很多。我不知道查询功能。即使我是,我也可能不会想到使用它。条件格式的巧妙解决方案。我真的很感激。
  • 很高兴它有帮助。让它建立到各种选项卡的超链接可能有点棘手,但绝对有可能。以下(类似)问题可能会有所帮助,或者使用更大的演示选项卡样本提出新问题,以获得更精确的公式来完全满足您的要求。 stackoverflow.com/questions/48126574/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多