如何获取通过参数作为数字传递的选定单元格的值?

时间:2020-11-09 20:57:05

标签: google-apps-script google-sheets

当执行此添加总功能时,我在添加所选单元格时所做的操作说结果不是数字,但是所选单元格只有数字。

function ADDTOTAL(ref1, ref2) {
  var Number1 = ref1;
  var Number2 = ref2;
  var Number = Math.floor(Number1+Number2); 
  return Number;
} 

它返回#NUM!并说结果不是数字,我对此并不陌生,不知道它是什么。

1 个答案:

答案 0 :(得分:1)

问题:

我设法复制了您的问题。

您正在传递字符串而不是单元格引用:

example

或用作引用的单元格的值是字符串。例如"3 " 是一个字符串,因为它有多余的空间,而且3的格式也设置为字符串:

example2

无论哪种方式,您都传递字符串,但由于您要进行数学运算,因此参数必须为数字。

要确保单元格的值是数字,请执行=ISNUMBER(A1)。如果返回TRUE,则表示A1的值是一个数字。要将字符串数字转换为实际数字,请选择单元格,然后转到顶部菜单上的Format => Number => Number

请记住,如果将"3""1"这样的两个字符串加在一起,您将不会得到4而是31。我故意将格式更改为纯文本。在这种情况下,=isnumber(A1)将再次为FALSE

example3

解决方案:

假设这些单元格是实际数字,则可以使用以下选项:

  • 您传递单元格引用:

solution 1

  • 您传递数字参数:

enter image description here

  • 最后但并非最不重要的是,您可以使用parseFloat将输入参数转换为数字:

    function ADDTOTAL(ref1, ref2) {
    var Number1 = parseFloat(ref1);
    var Number2 = parseFloat(ref2);
    var Number = Math.floor(Number1+Number2); 
    return Number;
    }