欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


win7电脑的快速启动栏消失了怎么办?
project和word,excel之间的转换
SUMSQ平方和函数
Excel构造有规律数据实例1,1.1,2,2.1,3,3.1
如何快速excel转word
AMORDEGRC、AMORLINC函数的讲解
大于N的最小值 小于M的最大值
vba Do Until
较为复杂的If ElseIf ElseIf EndIf语句
PasteSpecial Paste:粘贴参数
Excel排列函数permut
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

   一、permut语法

  PERMUT(number,number_chosen)

  Number 表示对象个数的正整数。

  Number_chosen 表示每个排列中对象个数的正整数。

  参数说明:

  如两个参数为非整数,将被截尾取整。

  如果 number 或 number_chosen 为非数值类型,函数 PERMUT 将返回错误值 #VALUE!。

  如果 number ≤ 0 或 number_chosen < 0,函数 PERMUT 将返回错误值 #NUM!。

  如果 number < number_chosen,函数 PERMUT 将返回错误值 #NUM!。

  该函数的功能与数学上的排列概念,是一致的,只不过,此函数仅返回排列个数,而不会给出具体的排列方法。

  二、PERMUT实例

  比如,出3个队员中,选出两个队员来排队,共有几种排队方法,这就是排列,与顺序有关,顺序不同,则视为不同的排列方法。

  我们可以使用公式: =PERMUT(3,2)即可得出结果,6

  我们现在使用人工排列来理解此函数的排列方法,假设这三个队员的名字分别为A、B、C

  那么,排列的方案共为如此六种方法:

  1、A,B 2、A,C 3、B,C 4、B,A 5、C,A 6、C,B

  注意,该函数只返回排列的个数,不会给出具体的排列方法。

  如果你想了解排列的方案,只能使用VBA来实现,请看代码:

  for i =1 to 6

  for ii = 2 to 7

  for iii = 3 to 8

  for iiii = 4 to 9

  cells(k+1,1) = i & ii & iii & iiii

  k = k+1

  next iiii,iii,ii,i

  此代码的功能为,从9个对象里面,任何选择4个来排列的方案。

  代码在VBA环境下使用,会在当前工作表中的单元格里面自动填充出排列的方案。

  下面,再给你看看其它的排列的VBA代码:

  Sub 排列例子1()

  Dim a(1 To 7) As String '待排列字符

  Dim result(1 To 7) As String '暂存结果

  Dim i As Integer '循环变量

  Set resCol = New Collection '初始化结果集合

  a(1) = "A" '初始化待排列字符

  a(2) = "B"

  a(3) = "C"

  a(4) = "D"

  a(5) = "E"

  a(6) = "F"

  a(7) = "G"

  Insert result, a '排列

  Sheets(1).Columns("A:A").ClearContents '清理结果位置,准备输出结果

  For i = 1 To resCol.Count '将结果输出,因为在Excel中,所以输出到单元格

  Sheets(1).Cells(i, 1) = resCol(i) '如果不是在Excel,可以输出到需要的地方

  Next

  End Sub

  Sub 排列例子2()

  Dim a() As String '待排列字符

  Dim result() As String '暂存结果

  Dim Total As Integer '总共多少个字符

  Dim i As Integer '循环变量

  Total = Sheets(2).Cells(1, 1) '获取总共的字符数

  If Total > 26 Then

  MsgBox "字符数太多,超出程序设计"

  Exit Sub

  End If

  Set resCol = New Collection '初始化结果集合

  ReDim a(1 To Total) '根据总字符数重新定义数组

  ReDim result(1 To Total)

  For i = 1 To Total

  a(i) = Chr(i + 64) '初始化待排列字符

  Next i

  Insert result, a '排列

  Sheets(2).Columns("B:B").ClearContents '清理结果位置,准备输出结果

  For i = 1 To resCol.Count '将结果输出,因为在Excel中,所以输出到单元格

  Sheets(2).Cells(i, 2) = resCol(i) '如果不是在Excel,可以输出到需要的地方

  Next

  End Sub

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站