相当于SQL总和的Google电子表格(if(条件,val1,val2))

相当于SQL总和的Google电子表格(if(条件,val1,val2)),sql,google-sheets,Sql,Google Sheets,以下SQL查询的Google电子表格等价物是什么 SELECT SUM (IF (a = 'P', 1, IF (a = 'H', 0.5, 0))) FROM sheet; 我想找到一个派生列的和,其中派生字段的值是1(当a='p'时)或0.5(当a='H'时) 更新-根据基尔·拉布卡的评论,我获得了一个有效的解决方案。这更像是一项工作。它之所以有效,是因为派生值是常量,而不是基于原始值。有真正的解决办法吗 =COUNTIF(B2:B32, "=P") + COUNTIF(B2:B32, "

以下SQL查询的Google电子表格等价物是什么

SELECT SUM (IF (a = 'P', 1, IF (a = 'H', 0.5, 0))) FROM sheet;
我想找到一个派生列的和,其中派生字段的值是1(当
a='p'
时)或0.5(当
a='H'
时)

更新-根据基尔·拉布卡的评论,我获得了一个有效的解决方案。这更像是一项工作。它之所以有效,是因为派生值是常量,而不是基于原始值。有真正的解决办法吗

=COUNTIF(B2:B32, "=P") + COUNTIF(B2:B32, "=H") / 2

谷歌电子表格和函数概述

将数字的行或列相加是所有电子表格程序中最常见的操作之一

为了更容易地完成这项任务,谷歌电子表格包括一个内置的公式,称为总和函数。 SUM函数的语法

函数的语法指函数的布局,包括函数名、括号和参数

SUM函数的语法为:

=SUM(number_1,number_2,...number_30)
该函数最多可对30个数字求和。 SUM函数的参数

数字1,数字2,…数字30-要相加的数据

参数可以包含:

a list of numbers to be summed
a list of cell references indicating the location of the data in the worksheet
a range of cell references to the location of the data
示例:使用SUM函数添加一列数字

Enter the following data into cells A1 to A6: 114, 165, 178, 143, 130, 165

Click on cell A7 - the location where the results of the function will be displayed

Click on Insert > Functions > SUM in the menus insert the SUM function into cell A7

Drag select cells A1 to A6 in the spreadsheet to enter this range as the function's argument

Press the ENTER key on the keyboard

The number " 895 " should appear in the cell A7, this is the sum of the numbers entered in cells A1 to A6

When you click on cell A7 the complete function =SUM ( A1:A6 ) appears in the formula bar above the worksheet

来源:

我不确定我是否理解为什么COUNTIF解决方案是一种变通方法,“不是真正的解决方案”,因为从数学上讲,它完全符合您的要求。你可以用不同的方式来表达:

=ARRAYFORMULA(SUM(COUNTIF(B2:B32,{p;“H})*{1;0.5}))

或者类似的内容更明确地类似于SQL查询示例:

=ARRAYFORMULA(总和(如果(B2:B32=“p”,1,如果(B2:B32=“H”,0.5.0))


但是,您的解决方案可能比这两种方法都更有效。

我的问题是关于如何获取从现有列派生的虚拟列的总和。@Joycebab抱歉!你可以试试这个
=SUMIF(range1:range2,“=P”,derivedField)
或者
=SUMIF(range1:range2,“=H”,derivedField)
我如何定义
derivedField
?我的代码在这种特殊情况下工作,因为1和0.5是常量。但是,如果我想从另一列匹配行中获取值的总和,它将不起作用?因为那是完全可能的,只是我不知道你在问什么。例如,“如果B2:B32是'P',求D2:D32中的值的和;但是如果B2:B32是'H',求F2:F32中的值的和”,或者其他什么。
sum(如果(…)
是非标准SQL。(SQL中没有
IF
)您指的是哪种方言?