我有一个电子表格的游戏,我的朋友和我玩。
我们正在努力寻找一种可靠的方法来找出我们都想玩的游戏。
我们已经创建了一个Google Sheet,它列出了预期的信息,如游戏名称、游戏链接、最大玩家数、价格、描述、游戏类型,以及最重要的是,交通灯系统,我们是否想玩它。
绿色单元格颜色意味着我们想播放它。
黄色单元格颜色意味着我们不介意尝试一次,或者只在某些情况下(即只在很短的时间内)。
红色细胞颜色意味着我们不想播放它。
这些单元格颜色是针对每个游戏列出的,垂直向下按每个人的名字排列。
彩色单元格中的O表示该人已经拥有该游戏。
我想要创建一个过滤器视图(或者某种程度上是一个保存的、可访问的过滤器),它允许我单击特定人的复选框,然后列表是按绿色游戏筛选的。
这意味着我可以单击Alex和Rach的复选框,然后这个列表只会被Alex和Rach想玩的游戏过滤(因为他们的单元格颜色是绿色的)。
我怎样才能做到这一点呢?
事先非常感谢
发布于 2022-07-29 02:04:31
我们通常不为您编写代码,但是这里有一个您可以使用Google脚本来做的事情。
Try:
使用,使用以下代码:
function onEdit(e) {
var ss = e.source.getActiveSheet();
var lastRow = ss.getLastRow();
var range = e.range;
var col = range.getColumn();
var colColors = ss.getRange(4, col, lastRow - 3).getBackgrounds();
colColors.forEach((color, index) => {
var row = ss.getRange(index + 4, col)
if (col >= 8 && col <= 12 && e.range.getValue() == true) {
color == "#00ff00" ? null : ss.hideRow(row);
} else {
ss.getRange("H2:L2").uncheck();
ss.showRows(row.getRow());
}
})
};
代码使用onEdit触发器,每次编辑时都运行脚本。然后检查您所编辑的列是否位于H列上,然后获取您选中的该列的颜色,并只过滤那些带有绿色背景颜色的列。
结果:
唯一的限制是它不会逆转过滤器,所以如果你取消选中一个复选框,它会重置所有。
还要注意颜色,它是一个十六进制值。在我的测试样本中,绿色相当于#00ff00。您可能需要根据与您正在使用的绿色颜色等效的十六进制值来更改此值。
如果这对你有用的话请告诉我。
https://stackoverflow.com/questions/73159858
复制相似问题