基于单元格值的多行条件格式
Conditional formatting on Multiple Rows based on cell value
在我的 Google 表单中,我为我的下拉列表设置了自定义格式设置,它将根据所选值突出显示整行。
Custom formula is
=$B3="Highlight: 1 Row"
但是,如果我愿意,如何突出显示多行呢?
Google Sheet 示例: Highlight Multiple Rows
截图示例:
更新(2017 年 1 月 26 日)
此 "multi row" 功能的目的将用于更强大的传播sheet 中,该传播sheet 从 Google Sheet 生成 Google 表单。对于这个特定的用例,有许多不同的 "dropdowns" 供用户从可以键入的控件中进行选择。 sheet 变得越长,这很快就会变得难以导航。处理这个问题的最好方法似乎是通过条件格式。
- Highlight Multiple Rows(测试GoogleSheet)
- Create Form From Sheet (YouTube 教程)
- Create Form From Sheet(GoogleSheet)
- Create Form From Sheet (Google 脚本)
使用这个自定义公式
=$B="Highlight: 2 Row"
确保您要应用此规则的范围是两行长
例如:B3:Z4
现在,当在 B3 中输入 "Highlight: 2 Row" 时,应突出显示两行。
更新:
下面是一个 google 应该可以运行的脚本
function onEdit(e) {
var sh, colors, rows, rowsBefore;
sh = e.source.getActiveSheet();
colors = ["#fff2cc", "#fce5cd", "#d9ead3", "#cfe2f3"];
if (sh.getName() !== 'Example' || e.range.columnStart !== 2 || e.range.rowStart < 8 || typeof e.value == 'object') return;
rowsBefore = e.oldValue ? e.oldValue.replace(/\D/g, '') : 1;
rows = e.value.replace(/\D/g, '');
sh.getRange(e.range.rowStart, 4, rowsBefore, sh.getLastColumn()).setBackground("white")
sh.getRange(e.range.rowStart, 4, rows, sh.getLastColumn()).setBackground(colors[rows - 1])
}
更改 sheet 名称(和范围)以适合。请注意,此脚本位于一个简单的 onEdit 触发器上:当在 sheet 'Example' 的列 B 中完成编辑时将触发它。不要尝试通过单击脚本编辑器中的 'play' 按钮来 运行 脚本,因为它会 return 出错。看看有没有帮助?
在我的 Google 表单中,我为我的下拉列表设置了自定义格式设置,它将根据所选值突出显示整行。
Custom formula is
=$B3="Highlight: 1 Row"
但是,如果我愿意,如何突出显示多行呢?
Google Sheet 示例: Highlight Multiple Rows
截图示例:
更新(2017 年 1 月 26 日)
此 "multi row" 功能的目的将用于更强大的传播sheet 中,该传播sheet 从 Google Sheet 生成 Google 表单。对于这个特定的用例,有许多不同的 "dropdowns" 供用户从可以键入的控件中进行选择。 sheet 变得越长,这很快就会变得难以导航。处理这个问题的最好方法似乎是通过条件格式。
- Highlight Multiple Rows(测试GoogleSheet)
- Create Form From Sheet (YouTube 教程)
- Create Form From Sheet(GoogleSheet)
- Create Form From Sheet (Google 脚本)
使用这个自定义公式
=$B="Highlight: 2 Row"
确保您要应用此规则的范围是两行长
例如:B3:Z4
现在,当在 B3 中输入 "Highlight: 2 Row" 时,应突出显示两行。
更新:
下面是一个 google 应该可以运行的脚本
function onEdit(e) {
var sh, colors, rows, rowsBefore;
sh = e.source.getActiveSheet();
colors = ["#fff2cc", "#fce5cd", "#d9ead3", "#cfe2f3"];
if (sh.getName() !== 'Example' || e.range.columnStart !== 2 || e.range.rowStart < 8 || typeof e.value == 'object') return;
rowsBefore = e.oldValue ? e.oldValue.replace(/\D/g, '') : 1;
rows = e.value.replace(/\D/g, '');
sh.getRange(e.range.rowStart, 4, rowsBefore, sh.getLastColumn()).setBackground("white")
sh.getRange(e.range.rowStart, 4, rows, sh.getLastColumn()).setBackground(colors[rows - 1])
}
更改 sheet 名称(和范围)以适合。请注意,此脚本位于一个简单的 onEdit 触发器上:当在 sheet 'Example' 的列 B 中完成编辑时将触发它。不要尝试通过单击脚本编辑器中的 'play' 按钮来 运行 脚本,因为它会 return 出错。看看有没有帮助?