gpt4 book ai didi

arrays - Excel-根据分数的投票制作数组

转载 作者:行者123 更新时间:2023-12-04 20:17:16 26 4
gpt4 key购买 nike

我是 Matlab 的高手,但显然我无法为我今天的生活找出 excel。我有一个电子表格,我可以在其中跟踪投票。所以我为每个分数记录 x 票数,即在 1 到 5 的范围内,3 人投 4,2 人投 3,1 人投 1。我想找到这些选票的中位数,但我需要先把它们变成一个数组,否则我只是取票数的中位数。在这种情况下,我无法让数组正常工作。我需要用上面的例子构建一个数组,看起来像 {4 4 4 3 3 1},然后我可以取它的中位数(我假设我可以在数组上使用常规的中位数函数?)。

我意识到这里的问题是我不太了解excel。所以我想我只是在寻求一个答案,当我自己不能展示太多工作时,我会不赞成。但是有人可以给我一个提示吗?

enter image description here

最佳答案

这个引起了我的兴趣,我确信有一种方法可以使用数组公式来做到这一点,但它们从来都不是我的强项。暂时这里是一个VBA解决方案:

Function MedianArray(rngScore As Range, rngCount As Range) As Double

Dim arrS() As Variant, arrC() As Variant, arrM() As Variant
Dim i As Integer, j As Integer, k As Integer
Dim d As Double

arrS = rngScore
arrC = rngCount

d = WorksheetFunction.Sum(rngCount)

ReDim arrM(1 To d, 1 To 1)

k = 1

For i = 1 To UBound(arrS, 2)
For j = 0 To arrC(1, i) - 1
arrM(k, 1) = arrS(1, i)
k = k + 1
Next j
Next i

MedianArray = WorksheetFunction.Median(arrM())

End Function

鉴于您说您对 VBA 了解不多,这就是您的操作方法:
  • 在 Excel 中按 Alt + F11 打开 VB 编辑器
  • 在 VB 编辑器菜单中选择插入 -> 模块
  • 粘贴上面的代码
  • 在需要中值的单元格中输入 =MedianArray(B1:F1,B2:F2) ,假设您的分数在第 1 行 B 到 F 列中,并且计数直接位于下方。

  • 希望这可以帮助。

    关于arrays - Excel-根据分数的投票制作数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19781638/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com