以下SQL查询等效的Google Spreadsheets是什么?
SELECT SUM (IF (a = 'P', 1, IF (a = 'H', 0.5, 0))) FROM sheet;
我想找到派生列的总和,其中派生字段的值为1(当a = 'P'
时)或0.5(当a = 'H'
时)。
更新 - 根据Kiel Labuca的评论,我获得了一个有效的解决方案。这更像是一种解决方法。它的工作原理是派生值是常量而不是基于原始值。对此有真正的解决方案吗?
=COUNTIF(B2:B32, "=P") + COUNTIF(B2:B32, "=H") / 2
答案 0 :(得分:1)
Google Spreadsheet SUM功能概述
添加行或列数字是所有电子表格程序中执行的最常见操作之一。
为了更轻松地完成此任务,Google Spreadsheets包含一个称为SUM函数的内置公式。 SUM函数的语法
函数的语法是指函数的布局,包括函数的名称,括号和参数。
SUM函数的语法是:
=SUM(number_1,number_2,...number_30)
该功能最多可以汇总30个数字。 SUM函数的参数
number_1,number_2,... number_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
答案 1 :(得分:0)
我不确定我理解为什么你的COUNTIF解决方案是一种解决方法而且“不是一个真正的解决方案”,因为数学上它完全符合你的要求。你可以用不同的方式表达它:
=ARRAYFORMULA(SUM(COUNTIF(B2:B32,{"P";"H"})*{1;0.5}))
或类似的东西更类似于您的SQL查询示例:
=ARRAYFORMULA(SUM(IF(B2:B32="P",1,IF(B2:B32="H",0.5.0))))
但您的解决方案可能比其中任何一种都更有效。