当前位置: 首页 > 知识库问答 >
问题:

在Google电子表格中使用If语句

鲁斯伯
2023-03-14

我在谷歌电子表格中创建一个函数的同时,试图找出如何使用If语句。

我已经提供了一个我正在努力实现的例子。据我所知,这段代码中的If语句只是检查单元格A4的值是否等于4,如果是,则将输入数字乘以1.5?但是,当我尝试运行该函数时,它总是返回0(或我从price变量开始指定的任何值)。

任何帮助都将不胜感激。

非常感谢

    function calculatePrice(inNum) {

         var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
         var price = 0;

         if (sheet.getRange(1, 4).getValue() == 4) {
             price = inNum * 1.5;
         }

         return price;
     }

共有2个答案

陆浩博
2023-03-14

正如T. J.克劳德所发现的,公认的答案有一个关键的弱点。自定义函数依赖于A4中的值,但当该值更改时,它不会自动更新。

为什么?作为优化步骤,图纸将仅刷新其确定受编辑影响的单元格。但是,它不分析自定义函数的内部,而是依赖于电子表格公式中的范围引用参数

如果函数响应A4中的更改很重要,那么最好实现它,将重要因素作为参数,从而:

function calculatePrice(importantFactor,inNum) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var price = 0;
  if (importantFactor == 4) {
    price = inNum * 1.5;
  }
  return price;
}

要像这样使用,假设inNumG6中的值:

=calculatePrice($A$4,G6)

更好的是,您可以在没有脚本的情况下实现这一点:

=IF($A$4=4, G6 * 1.5, 0)

无论哪种方式,更改A4的内容都会触发对包含公式的单元格的重新计算。

干浩阔
2023-03-14

干得好。您缺少getDataRange,之后可以获取单元格。

function calculatePrice(inNum) {
 var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 var price = 0;
 if (sheet.getDataRange().getCell(row, col).getValue() == 4) {
  price = inNum * 1.5;
 }
 return price;
}

电子表格的演示

 类似资料:
  • 我已经通过谷歌官方文档《开发者指南》API中提到的一个简单Java代码成功地在我的Google Drive帐户的现有电子表格中创建了一个新的工作表,但我想通过Java代码在我的Google Drive帐户中创建一个新的电子表格。在链接中,他们没有提到这方面的任何示例代码。我已经在Spreadservice类中看到了不同的可用方法。 如何使用Google电子表格API实现这一点?

  • 我想使用GoogleSheetsAPI以编程方式创建一个GoogleSheet,将其公开,并将其嵌入网页上的IFRAME中。 我不知道如何使用API使电子表格对公众可见。创建或更新电子表格时,API中是否对此进行了设置? 我遵循谷歌的Python快速入门,能够创建和更新电子表格。 使用驱动器API,我可以公开电子表格,并且可以从其他帐户访问它。但是,这不允许您将其嵌入到网页中(它仍然声明“很抱歉,

  • 我很难找到将多张工作表同步到主电子表格的方法。在我的测试中,我有一个大的电子表格,上面有5个城市的地址。我正在尝试为每个城市创建一个电子表格,并能够在任何一个表格中更改数据时同步数据。因此,我将管理总体数据,5张电子表格中的每一张都将分配给其他人。这样,他们就可以在不访问所有数据的情况下更新工作表。使用内置查询或导入功能的问题是,如果用户在“城市”电子表格上进行更改,它将破坏该表格,因为数据被引用

  • 我是一名编码等方面的初学者,但我正在努力理解我在做什么以及代码中发生了什么。 我想在不同的电子表格之间划一行。 我在“核心”电子表格中有一个脚本,它在“主页”和“完成”表格链接之间移动一行到电子表格: 我搜索了如何将位于“已完成”工作表上的数据移动到另一个名为“数据库”的电子表格链接到电子表格: 但我想将数据从表“CORE”/“Finished”传输到表“database”/“DB”,而不重写DB

  • 问题内容: 我创建了一些工具来填充Google电子表格。自从我今天出错以来,它已经工作了1年 这是与gmail连接的代码部分: 我不知道如何与gmail连接,我正在尝试通过oAuth进行此操作,但我不知道如何进行操作。在https://developers.google.com/google- apps/spreadsheets/authorize 上的示例中,只有.net代码。 问题答案: 我终

  • 我很抱歉,如果这是一个明显的问题,我仍然是相当新的API。我正在使用python drive api库,并试图将google电子表格下载为CSV。 当我使用files.get时,它会吐出一个没有downloadUrl的文件,在导出链接字段中也没有“text/csv”键。 如果不可能,我可以找到解决方案,但我希望是这样,因为可以手动完成(file->download_as->csv) 我需要使用go