随机选择一个姓氏: =INDEX(姓氏列表, RANDBETWEEN(1,COUNTA(姓氏列表))) 随机选择一个名字: =INDEX(名字列表,RANDBETWEEN(1,COUNTA(名字列表))) 随机选择一个不同于第二个名字的名字:=INDEX(名字列表,RANDBETWEEN(1,COUNTA(名字列表)-1+MATCH(B2&C2,名字列表&" "&名字列表,0))) 如果第二个和第三个名字相同,则重新随机选择第三个名字:=IF(C2=D2,INDEX(名字列表,RANDBETWEEN(1,COUNTA(名字列表)-1+MATCH(B2&C2,名字列表&" "&名字列表,0))),D2)能不能组合一起
时间: 2023-10-04 16:08:38 浏览: 97
当然可以将这些公式组合起来,如下所示:
=INDEX(姓氏列表, RANDBETWEEN(1,COUNTA(姓氏列表)))&INDEX(名字列表,RANDBETWEEN(1,COUNTA(名字列表)))&IF(INDEX(名字列表,RANDBETWEEN(1,COUNTA(名字列表)))=INDEX(名字列表,RANDBETWEEN(1,COUNTA(名字列表)-1+MATCH(RIGHT(A1),名字列表,0)&INDEX(名字列表,RANDBETWEEN(1,COUNTA(名字列表)))),INDEX(名字列表,RANDBETWEEN(1,COUNTA(名字列表)-1+MATCH(RIGHT(A1),名字列表,0)&INDEX(名字列表,RANDBETWEEN(1,COUNTA(名字列表))))))
其中,A1是用于存储姓名的单元格,RIGHT(A1)用于获取名字中的最后一个字,MATCH(RIGHT(A1),名字列表,0)用于查找名字列表中最后一个字的位置。公式分成了三部分,第一部分用于随机选择一个姓氏,第二部分用于随机选择一个名字,第三部分用于随机选择另一个不同于第二个名字的名字,并确保第三个名字不与第二个名字重复。
请注意,这个公式假定名字列表中没有重复的名字。如果名字列表中有重复的名字,这个公式可能会出现错误。
相关问题
你是vba专家,我有一份PPT的文档,要求: 找到所有指定颜色的字符,从字体列表中随机选择一个字体,应用为该字符的字体;每种字体,只用随机选用一次。 若字符的颜色是RGB(255, 0, 0),从字体列表中随机选择一种字体 若字符的颜色是RGB(255, 165, 0),从字体列表中随机选择一种字体 若字符的颜色是RGB(255, 255, 0),从字体列表中随机选择一种字体 若字符的颜色是RGB(0, 255, 0),从字体列表中随机选择一种字体 若字符的颜色是RGB(139, 69, 19),从字体列表中随机选择一种字体 若字符的颜色是RGB(0, 255, 255),从字体列表中随机选择一种字体 若字符的颜色是RGB(0, 0, 255),从字体列表中随机选择一种字体 若字符的颜色是RGB(128, 0, 128),从字体列表中随机选择一种字体 若字符的颜色是RGB(255, 192, 203),从字体列表中随机选择一种字体 若字符的颜色是RGB(0, 0, 0),从字体列表中随机选择一种字体 随机选用字体的字体名称列表: “星座文字A5” “星座文字A12” “几何标准体A3” “花型文字A1” “花型文字A2” “花型文字A3” “花型文字A4” “欧拉文字A4” “几何标准体B3” “华为文字A1” “星座文字A1” “星座文字B3” “几何方滑体A32” 请写一个简洁,专业的VBA代码
以下是符合要求的VBA代码:
```
Sub ApplyRandomFont()
Dim colorList As Variant
colorList = Array(RGB(255, 0, 0), RGB(255, 165, 0), RGB(255, 255, 0), RGB(0, 255, 0), RGB(139, 69, 19), RGB(0, 255, 255), RGB(0, 0, 255), RGB(128, 0, 128), RGB(255, 192, 203), RGB(0, 0, 0))
Dim fontList As Variant
fontList = Array("星座文字A5", "星座文字A12", "几何标准体A3", "花型文字A1", "花型文字A2", "花型文字A3", "花型文字A4", "欧拉文字A4", "几何标准体B3", "华为文字A1", "星座文字A1", "星座文字B3", "几何方滑体A32")
Dim slide As Slide
For Each slide In ActivePresentation.Slides
Dim shape As Shape
For Each shape In slide.Shapes
If shape.HasTextFrame Then
Dim paragraph As TextRange
For Each paragraph In shape.TextFrame.TextRange.Paragraphs
Dim run As TextRange
For Each run In paragraph.Runs
Dim color As Long
color = run.Font.Color.RGB
Dim i As Integer
For i = 0 To UBound(colorList)
If color = colorList(i) Then
Dim fontIndex As Integer
fontIndex = WorksheetFunction.RandBetween(0, UBound(fontList))
run.Font.Name = fontList(fontIndex)
fontList(fontIndex) = ""
Exit For
End If
Next i
Next run
Next paragraph
End If
Next shape
Next slide
End Sub
```
这段代码会遍历PPT的所有文本框,找到指定颜色的字符并随机应用字体。具体来说,它会先定义一个颜色列表和字体列表,然后遍历每个文本框、每个段落、每个字符,如果字符的颜色匹配颜色列表中的某个颜色,就随机选用字体列表中的一个字体,并将该字体从列表中去掉,以确保每种字体只被选用一次。
随机函数_randbetween随机函数不简单
是的,_randbetween随机函数确实不简单。它是一个Excel函数,用于在指定的范围内生成随机数。例如,如果你想在1到10之间生成一个随机数,你可以使用_randbetween(1,10)函数。这个函数可以在Excel中用于各种目的,比如模拟随机事件、生成随机测试数据等。但是,在使用_randbetween函数时,你需要注意以下几点:
1. 请确保你的数据范围正确:在使用_randbetween函数时,请确保你指定的数据范围是正确的。如果你指定的范围不正确,你生成的随机数可能会超出你的预期范围。
2. 避免生成重复的随机数:如果你想在一系列数据中生成不重复的随机数,你需要使用其他函数或技巧来实现。例如,你可以使用VBA代码或自定义函数来生成不重复的随机数。
3. 避免多次生成随机数:如果你需要在多个单元格中生成随机数,你应该避免多次使用_randbetween函数。相反,你应该将随机数生成在一个单元格中,然后将其复制到其他单元格中。
总之,_randbetween随机函数是一个功能强大的工具,但在使用时需要小心谨慎。
阅读全文