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"})

这对我来说真的很管用。 感谢所有的输入!!