如何使用某些参数从Excel表中选择数据?

时间:2016-01-05 15:09:44

标签: excel excel-formula

我希望我明白这个问题。

我有一些虚拟数据,我想对其进行选择。 例如: 虚拟数据由25000条记录组成。如果我想使用:只有约5000条记录,其中包含40%的男性和60%的女性,年龄范围在20到60岁之间,大多数人的年龄在45岁左右(某些分布),我该如何解决这个问题

  
      
  • 25000
  • 中的5000条记录   
  • 40%男性,60%女性
  •   
  • 年龄分布45年
  •   

分发的例子,我会使用某种滑块将峰值向右或向左移动。我很可能会手工做到这一点。标准分布在最小值和最大值之间具有峰值的位置

Example

我希望能够进行年龄分发的原因是因为这些数据将用于演示仪表板。因为有些公司要么“更年轻”要么“年长”,那么当你把60岁的人带到一个年轻的成人设计师公司时,将60岁的人放在仪表板上就不合逻辑了。这是人力资源数据的思考。分配的平均年龄只有1或2 20岁的人在一家公司工作,但有30,29岁。我希望澄清它。

我有一个愿景,即我使用输入字段制作选择工作表,我可以指定最小年龄和最大年龄。有一个滑块指定我想要的女性百分比,以及一个图表,我可以指定年龄分布必须如何。

无论如何,这可以在Excel中完成。或者我需要一个不同的程序来实现这个目的,如果有的话,我会推荐什么? 我基本上想在excel中创建一个“选择程序”。

如果我提出错误的问题,或者细节不清楚,我很乐意听到。

提前致谢。

碧玉

1 个答案:

答案 0 :(得分:-1)

我最终通过使用VBA解决了这个问题。 为方便起见,我设置了1个工作表,其中包含10,000个男性和一个10000个女性。

enter image description here

为了计算73%男性和27%女性的分布,我使用以下公式: enter image description here

要从数据库中获取随机值,我使用以下方法: enter image description here 其中' 10000man'!B是工作表中的B行,其中保存了10000名男性。

按下按钮" bereken" (计算)以下VBA代码将B9中的值复制到列I中为B5执行该次数。 enter image description here

这是按钮的代码:

    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量的随机日期,其中均值是指定的数字并给出最大值和最小值。

由于