从单元格列表中弹出一个随机值

时间:2015-09-29 22:24:12

标签: excel random excel-formula

我有一个类似于this one的问题,但有点不同:

我们说我有这样的数据:

CAR NAME   COLOR  LIST OF COLORS
Car1         ?        Red
Car2         ?        Blue
Car3         ?        Green
Car4         ?        Black

我想将所有颜色随机分配给所有车辆而不重复,即

CAR NAME   COLOR  LIST OF COLORS
Car1       Green        Red
Car2       Black        Blue
Car3       Blue         Green
Car4       Red          Black

有没有办法让一个单元格从列表中随机选择,不包括已在另一个范围内输入的值?

2 个答案:

答案 0 :(得分:1)

D2 中输入:

=RAND()

并复制下来。在 B2 中输入:

=INDEX(C$2:C$5,MATCH(LARGE(D$2:D$5,ROW()-1),D$2:D$5,0))

并复制下来:

enter image description here

答案 1 :(得分:0)

一种方法是改组阵列。用JavaScript做起来相当容易。

How to randomize (shuffle) a JavaScript array?

shuffle = function(o){
    for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
    // rotate array vertical
    var vArray = [];
    for (var i = 0; i < o.length; i++) {
      vArray.push([o[i]]);
    }
    return vArray;
}

电子表格示例:

http://dtab.io/sheets/560b7f5d457aff1e1fe625d2