Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 如何创建一个数组公式来计算一行中三个不同值的中值?_Google Sheets_Google Sheets Formula_Array Formulas_Median - Fatal编程技术网

Google sheets 如何创建一个数组公式来计算一行中三个不同值的中值?

Google sheets 如何创建一个数组公式来计算一行中三个不同值的中值?,google-sheets,google-sheets-formula,array-formulas,median,Google Sheets,Google Sheets Formula,Array Formulas,Median,如何创建一个数组公式来计算google工作表中一行中三个不同值的中值? 例如,我想为中值公式做一个数组 =ARRAYFORMULA(MEDIAN(A2:A,$B$2,$C$2)) 在哪里 A2:开始日期-2020-07-22 10:00 B2:开始时间-8:00 C2:结束时间-17:30 中位数(A2:A,B2,C2)的结果是10:00,但数组公式不起作用。(结果是00:00:00) 是否可以为中位数创建一个数组?或者有没有其他方法可以做到这一点?平均值和中位数不一样。平均值本质上是平均值

如何创建一个数组公式来计算google工作表中一行中三个不同值的中值? 例如,我想为中值公式做一个数组

=ARRAYFORMULA(MEDIAN(A2:A,$B$2,$C$2))
在哪里
A2:开始日期-2020-07-22 10:00
B2:开始时间-8:00
C2:结束时间-17:30

中位数(A2:A,B2,C2)的结果是10:00,但数组公式不起作用。(结果是00:00:00)

是否可以为中位数创建一个数组?或者有没有其他方法可以做到这一点?

平均值和中位数不一样。平均值本质上是平均值,而中值是集合中的“最中间”值:

=平均值(2,1,9)
返回4[即,(1+2+9)/4]

>=中位数(2,1,9)< /代码>返回2(即,如果所有数字从最低到最高排列)中的值

如果只需要比较三列,就可以使用某种“暴力”值对值比较数组。例如,在D2中:

=ArrayFormula(IF(((A2:A-INT(A2:A)<B2:B)*(A2:A-INT(A2:A)>C2:C))+((A2:A-INT(A2:A)>B2:B)*(A2:A-INT(A2:A)<C2:C)),A2:A-INT(A2:A),IF((B2:B<(A2:A-INT(A2:A))*(B2:B>C2:C))+(B2:B>(A2:A-INT(A2:A))*(B2:B<C2:C)),B2:B,C2:C)))

=ArrayFormula(如果((A2:A-INT(A2:A)C2:C))+((A2:A-INT(A2:A)>B2:B)*(A2:A-INT(A2:A)(A2:A-INT(A2:A))*(B2:B平均值和中位数不相同。平均值基本上是平均值,而中位数是集合中“最中间”的值:

=平均值(2,1,9)
返回4[即,(1+2+9)/4]

>=中位数(2,1,9)< /代码>返回2(即,如果所有数字从最低到最高排列)中的值

如果只需比较三列,则可以使用某种“暴力”值对值比较数组。例如,在D2中:

=ArrayFormula(IF(((A2:A-INT(A2:A)<B2:B)*(A2:A-INT(A2:A)>C2:C))+((A2:A-INT(A2:A)>B2:B)*(A2:A-INT(A2:A)<C2:C)),A2:A-INT(A2:A),IF((B2:B<(A2:A-INT(A2:A))*(B2:B>C2:C))+(B2:B>(A2:A-INT(A2:A))*(B2:B<C2:C)),B2:B,C2:C)))

=ArrayFormula(如果((A2:A-INT(A2:A)C2:C))+((A2:A-INT(A2:A)>B2:B)*(A2:A-INT(A2:A)(A2:A-INT(A2:A))*(B2:B平均值的ArrayFormula:

=ARRAYFORMULA(TEXT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(N(A2:C*1)), 
 "select "&TEXTJOIN(",", 1, IF(A2:A="",,
 "avg(Col"&ROW(A2:A)-ROW(A2)+1&")"))&"")), 
 "select Col2"), "hh:mm"))

平均值的排列公式:

=ARRAYFORMULA(TEXT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(N(A2:C*1)), 
 "select "&TEXTJOIN(",", 1, IF(A2:A="",,
 "avg(Col"&ROW(A2:A)-ROW(A2)+1&")"))&"")), 
 "select Col2"), "hh:mm"))

A2:A是哪种范围参考?这是打字错误吗?另外,A2是否有日期和时间部分?请更好地描述您的数据。数组公式不支持中间值。您是否考虑过使用平均值而不是中间值?@teylyn i A2:A是打字错误。A2有日期和时间部分。2020-07-22是日期,10:00是时间。@player0 i d不要考虑平均值。所以我会尝试使用它。亚当,如果我从你的第一个问题中想起A2,你只关心时间部分。这里可能包含日期部分。你有MOD(A2,1)。,那么你真的想要三个时间值的中间值,或者说平均值,不是吗?理想情况下是一个数组公式,这样它就可以填充整个列…什么样的范围引用是
A2:A
?这是一个打字错误吗?另外,A2是否有日期和时间部分?请更好地描述你的数据。数组公式下不支持中间值。你考虑过吗Red使用平均值而不是中位数?@ Tyyyn i A2:A是一个日期和时间部分。2020—07—22是一个日期,10:00是一个时间。@ Prave0我没有考虑平均值。所以我会尝试使用它。亚当,如果我记得从你的第一个问题,对于A2,你真的只关心时间部分。这里可能包含日期部分。你有mod(A2,1),所以你真的想要三个时间值的中间值,或者平均值,不是吗?理想情况下是一个数组公式,这样它就填充了整个列。。。