我希望我明白这个问题。
我有一些虚拟数据,我想对其进行选择。 例如: 虚拟数据由25000条记录组成。如果我想使用:只有约5000条记录,其中包含40%的男性和60%的女性,年龄范围在20到60岁之间,大多数人的年龄在45岁左右(某些分布),我该如何解决这个问题
- 25000
中的5000条记录- 40%男性,60%女性
- 年龄分布45年
分发的例子,我会使用某种滑块将峰值向右或向左移动。我很可能会手工做到这一点。标准分布在最小值和最大值之间具有峰值的位置
我希望能够进行年龄分发的原因是因为这些数据将用于演示仪表板。因为有些公司要么“更年轻”要么“年长”,那么当你把60岁的人带到一个年轻的成人设计师公司时,将60岁的人放在仪表板上就不合逻辑了。这是人力资源数据的思考。分配的平均年龄只有1或2 20岁的人在一家公司工作,但有30,29岁。我希望澄清它。
我有一个愿景,即我使用输入字段制作选择工作表,我可以指定最小年龄和最大年龄。有一个滑块指定我想要的女性百分比,以及一个图表,我可以指定年龄分布必须如何。
无论如何,这可以在Excel中完成。或者我需要一个不同的程序来实现这个目的,如果有的话,我会推荐什么? 我基本上想在excel中创建一个“选择程序”。
如果我提出错误的问题,或者细节不清楚,我很乐意听到。
提前致谢。
碧玉
答案 0 :(得分:-1)
我最终通过使用VBA解决了这个问题。 为方便起见,我设置了1个工作表,其中包含10,000个男性和一个10000个女性。
要从数据库中获取随机值,我使用以下方法: 其中' 10000man'!B是工作表中的B行,其中保存了10000名男性。
按下按钮" bereken" (计算)以下VBA代码将B9中的值复制到列I中为B5执行该次数。
这是按钮的代码:
Private Sub CommandButton1_Click()
Worksheets("invoer").Columns(8).ClearContents
Worksheets("invoer").Columns(9).ClearContents
Worksheets("invoer").Columns(10).ClearContents
Worksheets("invoer").Columns(11).ClearContents
Worksheets("invoer").Columns(12).ClearContents
Worksheets("invoer").Columns(13).ClearContents
Worksheets("invoer").Columns(14).ClearContents
Worksheets("invoer").Columns(15).ClearContents
Worksheets("invoer").Columns(16).ClearContents
Worksheets("invoer").Columns(17).ClearContents
Range("H1").Value = "Gender"
Range("I1").Value = "FirstName"
Range("J1").Value = "MiddleName"
Range("K1").Value = "LastName"
Range("L1").Value = "Birtday"
Range("M1").Value = "StreetAdress"
Range("N1").Value = "City"
Range("O1").Value = "State"
Range("P1").Value = "PostalCode"
Range("Q1").Value = "TelephoneNumber"
'man
Dim Gender As Integer
For Gender = 2 To Range("B5")
Cells(Gender, 8) = Range("A9")
Next Gender
Dim Firstname As Integer
For Firstname = 2 To Range("B5")
Cells(Firstname, 9) = Range("B9")
Next Firstname
Dim MiddleName As Integer
For MiddleName = 2 To Range("B5")
Cells(MiddleName, 10) = Range("C9")
Next MiddleName
Dim LastName As Integer
For LastName = 2 To Range("B5")
Cells(LastName, 11) = Range("D9")
Next LastName
Dim Birtday As Integer
For Birthday = 2 To Range("B5")
Cells(Birthday, 12) = Range("E9")
Next Birthday
'vrouw
Dim GenderV As Integer
For GenderV = Range("C5") To Range("C6")
Cells(GenderV, 8) = Range("A10")
Next GenderV
Dim FirstnameV As Integer
For FirstnameV = Range("C5") To Range("C6")
Cells(FirstnameV, 9) = Range("B10")
Next FirstnameV
Dim MiddleNameV As Integer
For MiddleNameV = Range("C5") To Range("C6")
Cells(MiddleNameV, 10) = Range("C10")
Next MiddleNameV
Dim LastNameV As Integer
For LastNameV = Range("C5") To Range("C6")
Cells(LastNameV, 11) = Range("D10")
Next LastNameV
Dim BirtdayV As Integer
For BirthdayV = Range("C5") To Range("C6")
Cells(BirthdayV, 12) = Range("E10")
Next BirthdayV
'algemeen
Dim StreetAdress As Integer
For StreetAdress = 2 To Range("C6")
Cells(StreetAdress, 13) = Range("B11")
Next StreetAdress
Dim City As Integer
For City = 2 To Range("C6")
Cells(City, 14) = Range("C11")
Next City
Dim State As Integer
For State = 2 To Range("C6")
Cells(State, 15) = Range("D11")
Next State
Dim PostalCode As Integer
For PostalCode = 2 To Range("C6")
Cells(PostalCode, 16) = Range("E11")
Next PostalCode
Dim Telefoon As Integer
For Telefoon = 2 To Range("C6")
Cells(Telefoon, 17) = Range("A11")
Next Telefoon
End Sub
我目前还没有解决年龄分布问题,这只是1950年到2000年之间的一个随机日期。我将仅针对这个问题发布一个新问题。
如何在Poisson分布中分配X量的随机日期,其中均值是指定的数字并给出最大值和最小值。
由于