答案1
如果您不想使用辅助列,则以下公式将为您提供 A 列的平均值:
=SUMPRODUCT(--SUBSTITUTE(A1:A12,"<","")*(1/2+1/2*(LEFT(A1:A12,1)<>"<")))/COUNTA(A1:A12)
答案2
首先,这里有一个规范化值的公式,因为任何以“<”开头的值都将被视为字符串值,Excel 无法对其求平均值或执行任何其他数学运算。
创建一个目标区域,其行数和列数与源数据区域相同;您的示例有一个 12 行 4 列的矩阵,因此目标也将是 12x4。将此公式放入目标区域的每个单元格中,因此此操作将在目标区域的每个单元格(从 A1 到 D12)上执行:
=IF(ISNUMBER(SEARCH("<",A1)),正确的(A1,LEN(A1)-1)/2,A1)
将查看单元格 A1。
如果其值以“<”开头,那么它将去掉前导的“<”,并将剩余的数值除以 2。
如果其值不以“<”开头,则该公式将返回其原始值。
一旦你有了一个完全由数值组成的矩阵,那么在第 12 行以下,用 =AVERAGE(X1:X12)其中X是列的名称。以下是结果的屏幕截图:
答案3
这有点儿不切实际,而且假设你不介意在工作簿中多放一张纸。如果你的表格A1:D4
在Sheet1
在 上Sheet2
,使用以下公式:
=IF(LEFT(Sheet1!A1,1)="<",RIGHT(Sheet1!A1,LEN(Sheet1!A1)-1)/2,Sheet1!A1)
然后向下和横向复制以匹配表格的尺寸Sheet1
。
返回Sheet1
,使用=AVERAGE(Sheet2!A1:A12)
并复制每一列
(Sheet2
如果需要可以隐藏,不会影响公式)