用于SQL SUM的Google电子表格等效项(if(condition,val1,val2))

时间:2014-02-01 05:07:50

标签: sql google-sheets

以下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

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

来源:Google Spreadsheets SUM Function

答案 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))))

但您的解决方案可能比其中任何一种都更有效。