excel如何实现分组随机抽奖

excel如何实现分组随机抽奖,第1张

假设A列为部门 B列为姓名,5个部门随机抽取8个人,每个部门至少有一个人

添加辅助列C列,公式为=rand()   即在C列生成随机数

抽取公式为=LET(a,REDUCE("姓名",C2:C32,LAMBDA(x,y,IF(y=MAX(FILTER(C2:C32,A2:A32=OFFSET(y,,-2))),VSTACK(x,OFFSET(y,,-1)),x))),VSTACK(a,TAKE(SORTBY(FILTER(B2:B32,ISNA(MATCH(B2:B32,a,))),RANDARRAY(26)),3)))

思路为:先抽取每部门分数最高的成员,这样可以保证每部门先有一个名额。然后除去刚抽取的5个人,将其余人做随机排列,再取排列后的前3名。

由于C列值为随机数,抽取后3人时又做了随机排列,所以每次刷新时会保证抽取随机的8个不重复人员

用java制作一个随机抽取学号的程序。

功能:根据你输入的学号总数,点击开始,中间的结果就根据学号的总数不停变化,点击停止,结果停止变动。

学号小点名程序需要一个输入框,一个现实结果的lable,两个按钮,以及一个固定大小的窗体。所以先定义好这些变量并且new他们出来。

JTextField num; //输入总人数

JButton start,stop; // 开始、停止按钮

JLabel rs; //显示结果

JPanel jp1,jp;

static boolean isSotp = true; //判断当前状态

public number() {

num = new JTextField(15);

start = new JButton("开始");

stop = new JButton("停止");

rs = new JLabel("0");

jp = new JPanel();

jp1 = new JPanel();

startaddActionListener(this); //添加监听

stopaddActionListener(this);

thisadd(num,BorderLayoutNORTH);

jp1add(rs);

thisadd(jp1,BorderLayoutCENTER);

FlowLayout layout = new FlowLayout();//面板布局

layoutsetAlignment(FlowLayoutCENTER);

jp1setLayout(layout);

jpsetLayout(layout);

jpadd(start);

jpadd(stop);

rssetFont(new Font("宋体", 1, 50));//设置结果样式

rssetForeground(ColorBLUE);

thisadd(jp,BorderLayoutSOUTH);

}

然后添加随机数,这个随机数是随机获得学号的:

public static int getnumber(int n){ //根据你输入的总人数返回随机在人数范围内的一个学号

Random r = new Random();

int r1 = rnextInt(n + 1);

return r1;

}

新建线程内部类:利用线程让“学号”动起来。

class thr extends Thread{

private JLabel rs;

int n;

thr(JLabel rs,int n){

thisrs = rs;

thisn = n;

}

@Override

public void run() {

while(isSotp){

try {

Threadsleep(500);

rssetText(getnumber(n) + "");

Systemoutprintln("1232");

} catch (InterruptedException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}

}

}

处理事件类(响应button事件):

@Override

public void actionPerformed(ActionEvent e) {

Object o = egetSource();

if(o == start)

{

String number = numgetText();

try{

int n = IntegerparseInt(number);

isSotp = true;

thr t = new thr(rs, n);

tstart();

}catch(NumberFormatException e2){

Systemerrprintln("格式错误");

numsetText("");

}

}else if(o == stop){

isSotp = false;

}

}

主程序启动:

public static void main(String[] args) { //主程序

number n = new number();

nsetResizable(false);

nsetTitle("学号点名小程序");

nsetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

nsetSize(250, 200);

nsetVisible(true);

}

Dim xm, n As Integer

Private Sub Command1_Click()

  Static k

  k = k + 1

  If k Mod 2 = 1 Then

    Timer1Interval = 20

    Command1Caption = "停"

  Else

    Timer1Interval = 0

    Command1Caption = "开始"

  End If

End Sub

Private Sub Form_Load()

  xm = Array("张三", "李四", "王五", "赵六", "钱七", "孙八", "周九", "吴十", "郑土")

  n = UBound(xm) + 1

  Text1FontSize = 16

  Text1 = ""

  Command1Caption = "开始"

End Sub

Private Sub Timer1_Timer()

  x = Int(Rnd  n)

  Text1 = xm(x)

End Sub

将人员按顺序编好,比如编号从1到100

然后用randbetween产生编号范围内的数字,比如=RANDBETWEEN(1,100)可以得到1到100的数字,然后再用这个数字用Vlookup找到对应的名字

1、首先,我们在单词上编辑我们的名字。

2、如何使用PPT进行随机名称抽奖然后在我们的办公室打开它。打开我们的word文件,自动将我们的人员输入我们的ppt。

3、然后选择视图主文件,将文本框居中,并调整文本大小和字体。关闭后,我们可以根据需要调整副本。

4、选择主控后,我们在动画中将显示时间设置为0。从点击开关上取下挂钩。并适用所有。

5、然后输入我们的节目设置并单击设置中的循环节目。确定。

6、之后,我们可以开始随机随机抽签,按S暂停。

以上就是关于excel如何实现分组随机抽奖全部的内容,包括:excel如何实现分组随机抽奖、电脑如何随机抽取人数、用vb编写了这个随机抽取人名的程序,要求一个文本框,一个按钮等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9779155.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存