Excel:在单个单元格

时间:2017-02-02 18:15:05

标签: excel

我遇到过一些解决方案,但我想知道这是否只是excel的限制,或者没有办法创建多个值来从同一个单元格进行评估。 C3从相邻单元格中的所有值创建平均值。

我会解释为什么我要这样做。我正在编写游戏中物品价格的speadsheet,并希望从列的一个单元格中创建一个伪数据库。我想要做的只是在一个单元格中的一个例子:

2,40,300,200,340

没有C2(单元名称)总和所有条目除以条目总数?用逗号分隔的所有值的平均值?

我知道这可以通过多个单元格轻松完成,但我想减少水平混乱,所以想知道是否有任何方法可以使用语法分隔值,而不使用VBA或过于复杂的代码。

2 个答案:

答案 0 :(得分:5)

公式是熊,但是:

=SUMPRODUCT(--MID(SUBSTITUTE(C2,",",REPT(" ",99)),(ROW(INDIRECT("1:" & LEN(C2)-LEN(SUBSTITUTE(C2,",",""))+1))-1)*99+1,99))/(LEN(C2)-LEN(SUBSTITUTE(C2,",",""))+1)

enter image description here

这里发生了很多事情,所以让我们分解一下:

LEN(C2)-LEN(SUBSTITUTE(C2,",",""))+1:获取,分隔的项目数,在本例中为5。它在这个公式中使用了两次。第二个是获得平均值的分母。

第二个用于(ROW(INDIRECT("1:" & LEN(C2)-LEN(SUBSTITUTE(C2,",",""))+1))-1)。这是迭代的部分。 SUMPRODUCT将导致迭代并对部分求和。

该行将返回1,2,3,...到LEN(...) - LEN(...)函数返回的内容。我们减去一个从0开始。

每次迭代乘以99,我们加一,因为MID不喜欢0作为开始。

SUBSTITUTE(C2,",",REPT(" ",99))创建一个包含99个空格的字符串代替每个","。

MID将此字符串分隔现在100个空格并解析它。第二个标准是从1,100,199,298,...等迭代单元格中的数字时间。因为我们给它留了100个空间,所以它总是落在一个空间上。

第三个标准设置每次迭代时返回的字符串的长度。我们使用99,因为在数字之后它总是会占据一个空格。

MID前面的--将导致返回的已解析字符串恢复为数字。这会强制Excel删除多余的空格并仅查看数字。

这个数字是SUMPRODUCT()维护并添加到每次迭代的总数中。

答案 1 :(得分:0)

您还可以为您的问题编写VBA函数:

示例:

enter image description here

在使用该功能之前粘贴的代码:

$.get('http://api.fixer.io/latest', function(data){
   $('#output').text(data.rates.INR);
});