Google Sheets sparkline, with importrange, with condition 我能做到吗?
Google Sheets sparkline, with importrange, with condition am I able to do this?
所以我有两本 google 张书。书 1 和书 2。
我目前让 Book1 从 Book2 导入一些信息来创建一个小的迷你图。
它从 Book2 的 A3 列到 G3 提取信息以创建一个小图。
我当前的代码是(在 Book1 单元格中)
=SPARKLINE(IMPORTRANGE("Book2","Sheet1!A3:G3"),
{"charttype","bar";"max",100;"color1","Green";"color2","red"})
但是,我希望此迷你图和导入范围仅在满足 Book1 上的条件时才起作用。
所以在 Book1 中,如果一个单元格的条件(示例)为 TRUE,则上面的公式(在 Book1 中的另一个单元格中)将适用,它会继续从 Book2 导入并在 Book1 中创建图表。
我不确定如何为我的公式设置条件。我试过 IF 语句但没有成功。希望今天有人能教我一些东西。
尝试:
=IF(A1="abc", SPARKLINE(IMPORTRANGE("ID", "Sheet1!A3:G3"),
{"charttype", "bar"; "max", 100; "color1", "green"; "color2", "red"}), )
如果单元格 A1 包含 abc
做迷你图,否则什么都不做
您可以使用Apps Script来实现您想要的。
function buildMyChart(){
// Get the sheets from the spreadSheet attach to this script
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var book1Sheet = sheets[0];
var book2Sheet = sheets[1];
// Get values from your Book2
var rangeParameter = "A3:G3";
book2SheetRange = book2Sheet.getRange(rangeParameter);
// If the cell has value "true", then insert the graph
var cellConditionParameter = "A1";
if(book1Sheet.getRange().getValues()[0][0]){
var chart = book1Sheet.newChart()
.setChartType(Charts.ChartType.LINE)
.addRange(book2SheetRange) // Range from Book2
.setPosition(2, 2, 0, 0) // position where you want to put your chart
.build();
book1Sheet.insertChart(chart);
}
}
上面的代码将获得两张表,从 Book2 中获取您想要的范围,如果特定单元格中的值在 Book1 中为“True”,那么它将使用 insertChart() 插入图表方法。
通知
我没有使用 Sparkline 作为类型,因为它很快就会被弃用,所以我使用“LINE”。您可以检查所有图表类型 here
好的,我想出了一些很有效的方法。
=SPARKLINE(QUERY(IMPORTRANGE("url of other sheet","Sheet1!A1:Z100"), "Select Col24 where Col2='"&cell number within sheet in Book1 such as E5 or whatever&"'"), {"charttype","bar";"max",100;"color1","Green";"color2","green"})
这对我来说真的很管用。
感谢所有的输入!!
所以我有两本 google 张书。书 1 和书 2。
我目前让 Book1 从 Book2 导入一些信息来创建一个小的迷你图。 它从 Book2 的 A3 列到 G3 提取信息以创建一个小图。
我当前的代码是(在 Book1 单元格中)
=SPARKLINE(IMPORTRANGE("Book2","Sheet1!A3:G3"),
{"charttype","bar";"max",100;"color1","Green";"color2","red"})
但是,我希望此迷你图和导入范围仅在满足 Book1 上的条件时才起作用。
所以在 Book1 中,如果一个单元格的条件(示例)为 TRUE,则上面的公式(在 Book1 中的另一个单元格中)将适用,它会继续从 Book2 导入并在 Book1 中创建图表。
我不确定如何为我的公式设置条件。我试过 IF 语句但没有成功。希望今天有人能教我一些东西。
尝试:
=IF(A1="abc", SPARKLINE(IMPORTRANGE("ID", "Sheet1!A3:G3"),
{"charttype", "bar"; "max", 100; "color1", "green"; "color2", "red"}), )
如果单元格 A1 包含 abc
做迷你图,否则什么都不做
您可以使用Apps Script来实现您想要的。
function buildMyChart(){
// Get the sheets from the spreadSheet attach to this script
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var book1Sheet = sheets[0];
var book2Sheet = sheets[1];
// Get values from your Book2
var rangeParameter = "A3:G3";
book2SheetRange = book2Sheet.getRange(rangeParameter);
// If the cell has value "true", then insert the graph
var cellConditionParameter = "A1";
if(book1Sheet.getRange().getValues()[0][0]){
var chart = book1Sheet.newChart()
.setChartType(Charts.ChartType.LINE)
.addRange(book2SheetRange) // Range from Book2
.setPosition(2, 2, 0, 0) // position where you want to put your chart
.build();
book1Sheet.insertChart(chart);
}
}
上面的代码将获得两张表,从 Book2 中获取您想要的范围,如果特定单元格中的值在 Book1 中为“True”,那么它将使用 insertChart() 插入图表方法。
通知
我没有使用 Sparkline 作为类型,因为它很快就会被弃用,所以我使用“LINE”。您可以检查所有图表类型 here
好的,我想出了一些很有效的方法。
=SPARKLINE(QUERY(IMPORTRANGE("url of other sheet","Sheet1!A1:Z100"), "Select Col24 where Col2='"&cell number within sheet in Book1 such as E5 or whatever&"'"), {"charttype","bar";"max",100;"color1","Green";"color2","green"})
这对我来说真的很管用。 感谢所有的输入!!