办公

当前位置:永利皇宫463登录 > 办公 > 5制作的抽取奖金小程序,excel怎么营造抽取奖品

5制作的抽取奖金小程序,excel怎么营造抽取奖品

来源:http://www.makebuLuo.com 作者:永利皇宫463登录 时间:2019-10-20 06:57

1.首先把名字输入到表格当中,设定一个显示中奖员工名字的单元格(可以大一点方便显示),在单元格输入公式

效果图预览

CREATE VIEW [dbo].[view1]
AS
SELECT     dbo.result.id AS resultid, dbo.users.id, dbo.users.name, dbo.users.phone, dbo.awards.Name AS awardname
FROM         dbo.awards INNER JOIN
                      dbo.result ON dbo.awards.id = dbo.result.awardsid INNER JOIN
                      dbo.users ON dbo.result.usersid = dbo.users.id

第一种方法:

INDEX函数

具体公式:在D2单元格输入

PS:RANDBETWEEN(1,10)表示抽取的总数

图片 1

输入完毕,按F9刷新,抽奖功能就完成了,看,一次一个名字哦!

图片 2

图片 3

RAND()函数:生成随机数。

抽奖公式

  • Counta获取总人数;Counta(区域)

  • 使用Randbetween函数生成指定范围的随机数;Randbetween(开始数字,结束数字)

  • 再使用Index函数获取中奖人员;INDEX(要查找的区域, 第几行, 第几列)

图片 4

这个抽奖小程序使用了  Jscex 和 HTML5 Canvas API 制作。在线演示地址: www.oschina.net/r2.html 。

SQL循环语句嵌套

图片 5

Jscex 和 HTML5 CanvasAPI 制作。在线演示地址: www.oschina.net/r2.html 。 请使用 chrome 浏览器访问有声音),使用firefox浏览...

抽奖程序:

图片 6

请使用 chrome 浏览器访问有声音),使用firefox浏览器无声音),使用IE浏览器无法执行)。此程序仅供osc使用,不适合通用情况,因为有很多不足,你可以在这基础上改进并分享给大家。

复制代码 代码如下:

首先在B2单元格输入:RAND()生成随机小数

代码片段(2)

CREATE PROCEDURE [dbo].[getranddata]
--这个地方的参数是后台调用传的参数,两个变量之间需要“,”号分开
@count int, --剩余奖项大小
@awards int --奖项的id
AS BEGIN
--这个地方定义的参数是存储过程内部用到的
DECLARE @minid int --最大id
DECLARE @maxid int --最小id
DECLARE @randnum int --随机数临时变量
DECLARE @exist int --查询结果

index函数

index函数为定位函数。

=index(数值范围,行号A,列号B)

表示的是,在数值范围内,查找出第A行,第B列的数据。

如图所示, 需要查找出范围A1:A7中,第3行,第1列的数据。函数表达式如下图。

图片 7

DECLARE @Result INT DECLARE @Upper INT DECLARE @Lower INT
SET @Lower = 1
SET @Upper = 10
SELECT @Result = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0)
SELECT @Result

公式解析:

        sqlsda = new SqlDataAdapter("select top " + Convert.ToInt32(dt.Rows[i]["Number"]) + " * from view1 order by resultid desc", sqlcon);
        sqlsda.Fill(ds, "t" + i.ToString());

问题:excel怎么制作抽奖小程序?

抽奖结果:

2.OFFSET+RANDBETWEEN函数

DECLARE @i int
SET @i=1 while @i<8 BEGIN IF @i<5 print space(4-@i)+REPLICATE('*',2*@i-1) ELSE print space(@i-4)+REPLICATE('*',15-2*@i)
SET @i=@i + 1 END

1. 简单、朴素且实用的抽奖器

图片 8

图片 9

数据库:

图片 10

复制代码 代码如下:

rand函数

=rand() 表示随机返回0到1之间的任何小数。当我们按下后,数字会发生变化。

具体如下图所示。

图片 11

=================================================================

图片 123.最后按住F9键不放就可以实现随机抽奖功能了!也可把名字改变成奖品名称,那随机显示的就是奖品了,可以用于显示员工随机抽中的奖品是什么!

SQL - 生成指定范围内的随机数

3.同时抽取多个不重复中奖者

复制代码 代码如下:

图片 13如上图,按住F9键就可以随机抽奖了,名字随机变化!

奖项设置:

这个蛮好玩的,试试吧!

回答:公司马上就要开年会了,如果能够给公司做一个Excel抽奖小程序,是多么开心+装B的事情。

效果如下

图片 14

首先我们来讲解下面三个函数

CREATE TABLE [dbo].[awards](
 [id] [int] IDENTITY(1,1) NOT NULL,
 [Name] [nvarchar](50) NOT NULL,
 [Number] [int] NOT NULL,
 CONSTRAINT [PK_awards] PRIMARY KEY CLUSTERED
(
 [id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

如下图,在D2单元格输入公式:=OFFSET($A$1,RANDBETWEEN(1,10),,) 按F9刷新可实现抽奖效果。

CREATE TABLE [dbo].[users](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [name] [nvarchar](50) NOT NULL,
    [phone] [nvarchar](50) NULL,
 CONSTRAINT [PK_table1] PRIMARY KEY CLUSTERED
(
    [id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

制作简易抽奖小程序,需要用到如下技巧:

知识点:

1.INDEX+RANDBETWEEN函数

ROUND()函数:返回按指定位数进行四舍五入的数值。

F9

按下F9,Excel就会重新计算数据。

若,你的表格数据量很大,公式很多,每次变动数据,Excel变得很卡时,可以将Excel设置为手动计算,然后使用F9来获取最新数据。

图片 15

复制代码 代码如下:

回答:年尾了,很多企业年会都有抽奖环节,你还在弱弱的使用把名字写好放入抽奖箱的原始方式吗?其实我们只要一台电脑上的EXCEL就可以实现随机抽奖功能,听起来高大上的样子,哈!先看动态效果图:

您可能感兴趣的文章:

  • javascript圆盘抽奖程序实现原理和完整代码例子
  • javascript 随机抽奖程序代码
  • python实现的简单抽奖系统实例
  • Android实现抽奖转盘实例代码
  • php抽奖小程序的实现代码
  • C++抽奖程序实现方法

2.选择B列名字,设置单元格条件格式

CREATE TABLE [dbo].[result](
 [id] [int] IDENTITY(1,1) NOT NULL,
 [usersid] [int] NOT NULL,
 [awardsid] [int] NOT NULL,
 CONSTRAINT [PK_result] PRIMARY KEY CLUSTERED
(
 [id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

第二种方法:

OFFSET函数

具体公式:在D2单元格输入

PS:RANDBETWEEN(1,10)同样表示抽取的总数

图片 16

输入完毕,按F9刷新,抽奖功能就完成了!也很简单哟!

图片 17

是不是很简单?是不是很想收藏?学会了这招,以后公司年会的抽奖你承包啦!让领导对你刮目相看!

回答:图片 18岁末年初,很多公司都会举办年度酒会。在年度酒会上一般都会进行抽奖。如果用传统的纸条抽奖,既繁琐又招人怀疑是否有内幕。很多人会选择编程来进行抽奖,其实我们可以用excel函数公式来制作抽奖小程序。今天就让我们一起来学习如何制作Excel 抽奖小程序。

图片 19

大观园内举办一场年度酒会,准备从三十六钗中抽取5个幸运者。每个人不能重复上榜,重复中奖。

1、先在B列插入随机数1-36,B2=RANDBETWEEN(1,36),双击下拉填充到底。

公式解读:

RANDBETWEEN函数:返回大于等于指定的最小值,小于等于指定最大值之间的一个随机整数。其函数语法为:RANDBETWEEN(bottom,top)Bottom参数: RANDBETWEEN将返回的最小整数。Top参数: RANDBETWEEN将返回的最大整数。RANDBETWEEN(1,36)是产生随机整数1至36。

2、在D1中输入幸运名单,在D2输入公式:=INDEX($A$2:$A$37,RANK(B2,$B$2:$B$37)),往下拖动五行,就能产生五个幸运者。

公式解读:

Rank函数最常用的是求某一个数值在某一区域内的排名。rank函数语法形式:rank(number,ref,[order])函数名后面的参数中 number 为需要求排名的那个数值或者单元格名称(单元格内必须为数字),ref 为排名的参照数值区域,order的为0和1,默认不用输入,得到的就是从大到小的排名,若是想求倒数第几,order的值请使用1。RANK(B2,$B$2:$B$37)意思是B2在B2至B37中排名第几,B2至B37必须采用绝对引用,否则公式下拉之后会导致排名区域发生变动,导致出错。

Index函数语法:INDEX(reference,row_num,column_num,area_num)Reference是对一个或多个单元格区域的引用。· 如果要对引用输入一个非连续区域,请使用括号将该引用括起来。· 如果引用中的每个区域都只包含一行或一列,则可以不使用相应的 row_num 或 column_num 参数。例如,对于单行引用,可以使用 INDEX(reference,,column_num)。Row_num是要从中返回引用的引用中的行编号。Column_num是要从中返回引用的引用中的列编号。当然index函数还有数组形式,在本公式中是采用引用形式,因此只谈它的引用形式。INDEX($A$2:$A$37,RANK(B2,$B$2:$B$37))意思是先求出B2在B2至B37中的位置,再算出相对应的A2至A37的单元格,最终产生出幸运者。

因为是采用随机函数来产生,所以最终产生的幸运者都是随机的。

如果要更新幸运者,只要按F5就能进行更新,产生新的幸运者名单。

Gif动图如下:

图片 20

回答:还在用excel制作抽奖你就out了,这里给你介绍一个兼具问卷调查、签到信息统计、抽奖于一体的软件——顷刻应用。

抽奖制作,将签到所得表单或者已有签到信息收集完成的表单关联到抽奖里,简单设置字段以及奖项详情即可。此外,还有一项特色功能,可以自定义预设中奖人的哦,你懂得。

图片 21具体制作方法,可以登录东软平台云官网查看相关使用技巧。

思路整理,无非就是点一个按钮,然后一个图片旋转一会就出来个结果就行了,可这个程序的要求不是这样的,是需要从数据库中随机抽取用户,根据数据库中指定的等级和人数,一键全部抽出来结果就行了。同时需要存储到数据库。还需要一个导出的功能。

然后在E2单元格输入公式:=INDEX($A$2:$A$11,MATCH(LARGE($B$2:$B$11,ROW(A1)),$B$2:$B$11,0)) 使用LARGE函数提取第1、第2、第3最大值,使中奖姓名不会出现重复。

SET @minid =
  (SELECT top 1 id
   FROM users
   ORDER BY id ASC) --查询最小id
SET @maxid =
  (SELECT top 1 id
   FROM users
   ORDER BY id DESC) --查询最大id
--set @count = 100
--set @awards = 1
--嵌套语句begin开始,end结束
while @count>0 BEGIN
SELECT @randnum = ROUND(((@maxid - @minid -1) * RAND() + @minid), 0)
SET @exist =
  (SELECT count(*)
   FROM users
   WHERE id=@randnum) IF @exist = 1 BEGIN
INSERT INTO result(usersid,awardsid)
VALUES(@randnum,
       @awards)
SET @count = @count - 1 END END END

由和两个函数综合运用合成,randbetween是返回一个介于指定数字的随机数,INDEX是返回给定单元格的值,randbetween显示的是一个数字,用index把这个数字代表的值(名字)显示出来!

    for (int i = 0; i < count; i++)
    {
        SqlCommand sqlcmd = new SqlCommand("getranddata", sqlcon);
        SqlParameter pcount = new SqlParameter("@count", Convert.ToInt32(dt.Rows[i]["Number"]));
        SqlParameter pawards = new SqlParameter("@awards", Convert.ToInt32(dt.Rows[i]["id"]));
        sqlcmd.Parameters.Add(pcount);
        sqlcmd.Parameters.Add(pawards);
        sqlcmd.CommandType = CommandType.StoredProcedure;
        sqlcmd.ExecuteNonQuery();

  • F9,重新计算所有数据;

  • Counta单元格计数;

  • Randbetween生成一个随机数;

  • Index检索单元格

其中三张表,一个视图,一个存储过程。

回答:感谢邀请,excel制作抽奖程序有很多方法,在这里我给您提供三种。

图片 22

图片 23

protected void Button1_Click(object sender, EventArgs e)
{
    SqlConnection sqlcon = new SqlConnection("server=.;database=test;uid=sa;pwd=123");
    sqlcon.Open();
    SqlDataAdapter sqlsda = new SqlDataAdapter("select * from awards", sqlcon);
    ds = new DataSet();
    sqlsda.Fill(ds);
    DataTable dt = ds.Tables[0].Copy();
    ds.Clear();
    int count = dt.Rows.Count;

图片 24

图片 25

具体制作方法:

不能遗漏的是,如果通过随机数根据id来抽取的话,需要考虑id不连续的问题,如果全部取出id也不现实。尽量少的去读写数据库。

制作简易抽奖小工具

如下所示,按住F9再松开即可。

图片 26

后台代码:

回答:

        switch (i)
        {
        case 0:
            GridView1.DataSource = ds.Tables["t" + i.ToString()].Copy().DefaultView;
            GridView1.DataBind();
            break;
        case 1:
            GridView2.DataSource = ds.Tables["t" + i.ToString()].Copy().DefaultView;
            GridView2.DataBind();
            break;
        case 2:
            GridView3.DataSource = ds.Tables["t" + i.ToString()].Copy().DefaultView;
            GridView3.DataBind();
            break;
        default:
            break;
        }
    }
    sqlcon.Close();
}

如下图,在D2单元格输入公式:=INDEX($A$2:$A$11,RANDBETWEEN(1,10)) 按F9刷新可实现抽奖效果。RANDBETWEEN(1,10)表示姓名的个数,从1-10个姓名之间随机抽取。

2. 复杂、美观且专业的抽奖器

图片 27

图片 28

鸣谢:需要源文件,请关注后,发私信给我噢!!发私信!!

回答:EXCEL可以抽奖,通过Randbetween、rand等函数来获取随机结果,也是可以的,但不直观,不明白的也不知道这个结果怎么来的,公不公平。

现在给大家分享一个PPT+EXCEL来实现的抽奖程序。

到年底了,很多公司都在准备年会,但年会抽奖是少不了的,为了使抽奖程序更直观,通过VBA在PPT中调用后台EXCEL中的抽奖人员名实现随机滚动的效果,在滚动过程中按回车实现抽奖结果随机定位,中奖的人员将不再进行后续的抽奖,并将抽奖结果写入EXCEL的中奖人员中。

功能如下:

  • 座位号循环随机滚动

  • 按回车键抽奖一次抽出一名员工,并将中奖的员工信息写入EXCEL中奖人员表中,同时此员工不再参加后续抽奖

  • 可以简单修改后设定一等奖、二等奖、三等奖等奖项

  • 抽奖结果在EXCEL抽奖人员中随机抽取,绝对公平,程序代码不控制抽奖结果,抽奖结果取决于抽奖时按回车时随时循环滚动的名单确定。

图片 29

抽奖主界面,可以添加图片及动画效果

图片 30

抽奖界面,可以添加图片及动画效果

图片 31

抽奖后记录中奖人员名单

图片 32

抽奖时,通过座位号随机滚动抽奖人员

图片 33

部分VBA代码

回答:有时候我们遇到一些重要的场合,有抽奖活动,那么怎么样才可以做出一个有趣的抽奖界面呢?用Excel就可以!今天教大家两种方法轻松制作出抽奖小程序。

图片 34图片 35

rank函数

语法:

=rank(需要排序的数字, 排序范围,排序规则)

函数就表示,需要排序的数字在排序范围内,排名第几名。

排序规则参数:0 表示降序,1表示升序。

例如,降序排列中,求出23在第一列数据中,排名第几?

方法:= rand(A1,A1:A6,0)

图片 36

抽签思路:

①利用Rand函数,使得名单都有对应的一个数值

②利用rank函数进行排名

③利用INDEX函数,查找名单,注意行号是随机变化的。因此返回的结果是随机的

因此,抽签函数的最终公式为

=INDEX(A2:B7,RANK(B2,B2:B7,0),1), 其中B2输入公式为 = rand()

具体步骤如下图

第一步

图片 37

第二步

图片 38

美化后,最终的效果如下图

图片 39

Excel抽奖小程序你学会了吗?

欢迎关注,更多惊喜等你来。如果需要获取源文件,欢迎私信雷哥。

回答:感谢诚邀!

春节尾牙将至,如何用Excel制作抽奖器呢?

小编分享2种类型的抽奖器

本文由永利皇宫463登录发布于办公,转载请注明出处:5制作的抽取奖金小程序,excel怎么营造抽取奖品

关键词: