Google表格迷你图,具有importrange,有条件的我可以这样做吗?

时间:2019-12-30 14:15:30

标签: if-statement google-sheets google-sheets-formula sparklines

因此,我有两本书。 Book1和Book2。

我目前有Book1从Book2导入一些信息以创建一个小的迷你图。 它从Book2列A3到G3提取信息以创建一个小图。

我当前的代码是(在Book1单元格中)

=SPARKLINE(IMPORTRANGE("Book2","Sheet1!A3:G3"), 
{"charttype","bar";"max",100;"color1","Green";"color2","red"})

但是,我希望此迷你图和importrange仅在满足Book1上的条件时才起作用。

因此在Book1中,如果一个单元格具有一个条件(示例)为TRUE,则将应用上面的公式(在Book1的另一个单元格中),并且它将继续从Book2导入并在Book1中创建图形。

我不确定如何在公式中设置条件。我尝试了IF语句,但没有成功。希望有人在那里可以今天教我一些东西。

3 个答案:

答案 0 :(得分:0)

尝试:

=IF(A1="abc", SPARKLINE(IMPORTRANGE("ID", "Sheet1!A3:G3"), 
 {"charttype", "bar"; "max", 100; "color1", "green"; "color2", "red"}), )

如果单元格A1中包含abc,则执行迷你图,否则不执行任何操作

答案 1 :(得分:0)

您可以使用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

答案 2 :(得分:0)

好吧,我发现一些效果很好。

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

这对我来说真的很好。 感谢您的所有投入!