[英]Google script for sheets not copying formulas inside cells, only the values
[英]Google Sheets: Copying cells and sorting it in another tab
我有一个来自多个项目的大文档列表(“MDR”),我试图将它们分类为正在进行/完成。 它看起来像这样:
项目 | 文档 | 地位 |
---|---|---|
1 | Doc11 | 完毕 |
1 | 文件 12 | 进行中 |
1 | 文件 13 | 完毕 |
2 | Doc21 | 进行中 |
2 | Doc22 | 完毕 |
2 | Doc23 | 进行中 |
我 select 来自数据验证下拉列表的状态。
我想要第二个选项卡(“GPO”)来过滤第一个 MDR 选项卡以查找正在进行的项目,所以它会是这样的:
项目 | 文档 | 地位 |
---|---|---|
1 | 文件 12 | 进行中 |
2 | Doc21 | 进行中 |
2 | Doc23 | 进行中 |
另外,如果我对 Doc13 进行了修订,我希望将其添加到他所在位置的第二个选项卡上:
项目 | 文档 | 地位 |
---|---|---|
1 | 文件 12 | 进行中 |
1 | 文件 13 | 进行中 |
2 | Doc21 | 进行中 |
2 | Doc23 | 进行中 |
我尝试使用查询和过滤器,但它不起作用,因为我还需要在“GPO”选项卡中分配信息,然后在添加/删除行时信息会错位。
还尝试为它制作一个宏,但没有运气,当我更改项目状态时无法将其设置为触发,我也没有找到一种方法在正确的行中对其进行排序。
我无法在 MDR 选项卡中添加过滤器并在那里写入,因为它也用于其他活动。
可以通过宏来完成吗?
或者使用脚本会更容易? 如果是这样,我应该调查什么来找到我的答案?
我很感激任何帮助!
function myfunc101() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('Sheet1');
const sh2 = ss.getSheetByName('Sheet2');
sh2.clearContents();
const sh3 = ss.getSheetByName('Sheet3');
sh3.clearContents();
const [hA,...vs] = sh.getDataRange().getValues();
let inProg = vs.map(r=>{if(r[2]=='In progress'){return r}}).filter(e=>e);
let done = vs.map(r=>{if(r[2]=='Done'){return r}}).filter(e=>e);
inProg.unshift(hA);//add headers
sh2.getRange(1,1,inProg.length,inProg[0].length).setValues(inProg);
done.unshift(hA);//add headers
sh3.getRange(1,1,done.length,done[0].length).setValues(done);
}
表 1:
项目 | 文档 | 地位 |
---|---|---|
1 | Doc11 | 完毕 |
1 | 文件 12 | 进行中 |
1 | 文件 13 | 完毕 |
2 | Doc21 | 进行中 |
2 | Doc22 | 完毕 |
2 | Doc23 | 进行中 |
表 2:
项目 | 文档 | 地位 |
---|---|---|
1 | 文件 12 | 进行中 |
2 | Doc21 | 进行中 |
2 | Doc23 | 进行中 |
表 3:
项目 | 文档 | 地位 |
---|---|---|
1 | Doc11 | 完毕 |
1 | 文件 13 | 完毕 |
2 | Doc22 | 完毕 |
听起来您可以使用 pivot 表来实现这一点,因为您想要一个在数据外部的自动刷新过滤表。 如果您不熟悉 pivot 表,请阅读此处: https://support.google.com/docs/answer/1272900?co=GENIE.Platform%3DDesktop&hl=en#:~:text=Pivot%20table。 %22%20choose%20a%20pivot%20table或此处: https://coefficient.io/guide-to-using-pivot-tables-in-google-sheets?ref=quuu
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.