在 Excel 表中生成虚拟文本

在 Excel 表中生成虚拟文本

当我想创建一个乱码我使用的 MS Word 中的类似文本

=rand()

运行起来非常完美。我立即得到了一段可以用于实现目标的胡言乱语的文字。

我没能找到 Excel 的相同内容,是我搜索错了吗?我发现这个博客描述功能

=pwrRANDOMTEXT()

但是,我的 Excel 无法识别它,并抛出公式错误。我想选择表格或范围并用随机单词填充它,最好是文本长度可调。

有没有真正有效的乱码-Excel 中的生成器?

PS Excel 版本是最新版本,包含在 O365 企业应用程序中。版本 2104 内部版本 13929

答案1

方法 1-随机选择字符排列成类似单词和段落的字符串。

这个公式可能需要一些调整,但它可以产生“类似句子”的字符串。

=LET( letterPool, 800,
       sentDelimiter, ". ",
       cArray, RANDARRAY( 1, letterPool, 97, 122, TRUE ),
       wArray, RANDARRAY( 1, letterPool, 0, 1 ),
       wordStream, INDEX( CHAR( IF( wArray>0.8, 32, cArray ) ), 1, SEQUENCE( 1, letterPool ) ),
       sArray, RANDARRAY( 1, letterPool, 0, 1 ),
       sentences, INDEX( IF( sArray<0.02, sentDelimiter, wordStream ), 1, SEQUENCE( 1, letterPool ) ),
       pArray, RANDARRAY( 1, letterPool, 0, 1 ),
       paragraphs, INDEX( IF( pArray<0.01, "." & CHAR(10), sentences ), 1, SEQUENCE( 1, letterPool ) ),
       PROPER( SUBSTITUTE( TRIM( CONCAT( paragraphs, "." ) ), " .", "." ) ) )

当显示 800 时,您可以选择所需的长度。注意:它使用了 Rand 函数,因此它是易失性的,每次您输入数据或按 F9 时我们都会重新计算。

方法 2——一组随机选择的句子随机组成段落。

此方法会生成您定义的真实句子,并随机选择它们并将其放入 3 个段落中。与上述方法不同,您无法控制字符串的绝对长度,但可以更改其相对大小和形状。生成 3 个段落是硬编码的,但您可以按照逻辑根据需要添加或删除它。像另一种方法一样 - 它是随机的,因此它是易变的。

首先,这里是使用简单短语的基本公式,以使其更具可读性。

=LET( p1Sent, 3,
      p2Sent, 5,
      p3Sent, 3,
      pghDelimiter, CHAR(10) & CHAR(10),
       sentArray,
{"Phrase 1.","Phrase 2.","Phrase 3.","Phrase 4.","Phrase 5.","Phrase 6.","Phrase 7.","Phrase 8.","Phrase 9.","Phrase 10.","Phrase 11.","Phrase 12."},
           s, COLUMNS( sentArray ),
           pgha1, TEXTJOIN( " ", TRUE, IFERROR( SORTBY( INDEX( sentArray, 1, SEQUENCE( 1, p1Sent, RANDBETWEEN( 1, s - p1Sent ) ) ), RANDARRAY( 1, p1Sent, 0,1, FALSE) ), "" ) ),
           pgha2, TEXTJOIN( " ", TRUE, IFERROR( SORTBY( INDEX( sentArray, 1, SEQUENCE( 1, p2Sent, RANDBETWEEN( 1, s - p2Sent ) ) ), RANDARRAY( 1, p2Sent, 0,1, FALSE) ), "" ) ),
           pgha3, TEXTJOIN( " ", TRUE, IFERROR( SORTBY( INDEX( sentArray, 1, SEQUENCE( 1, p3Sent, RANDBETWEEN( 1, s - p3Sent ) ) ), RANDARRAY( 1, p3Sent, 0,1, FALSE) ), "" ) ),
           TEXTJOIN( pghDelimiter, TRUE, pgha1, pgha2, pgha3 ) )

你需要在三个段落中输入你想要的句子数量。这些是p1已发送p2Sent, 和p3已发送。我将其设置为 3、5、3。

接下来,你需要告诉它如何分隔段落。我这里是双倍行距,所以我设置pgh定界符为 CHAR(10) & CHAR(10)。对于单倍行距,您应将其设置为 CHAR(10)。

然后你需要输入你想让它选择的短语。你必须把短语放在引号中,用逗号分隔,放在 {} 括号之间。我这里做了 12 个,但你可以在,"new phrase"最后一个 } 括号前添加任意数量的短语。你做的短语越多,它出现的随机性就越强。

注意:您的短语长度必须小于或等于 255 个字符。

它应该产生如下输出: 短语示例

这不会重复段落内的任何句子,但可能会重复段落之间的句子。你给它的句子越多,重复的次数就越少。

现在,这里有一个具有拉丁语真实内容的例子:

=LET( p1Sent, 3,
      p2Sent, 5,
      p3Sent, 3,
      pghDelimiter, CHAR(10) & CHAR(10),
       sentArray,
{"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.","Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.","Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.","Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur?","Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?","Habeo enim geminos a tergo, sic semper cum oculis meis ut transire mihi videre aliquis inclinatur ad prosequendum ea.","Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus.","Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae.","Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.","Unus pro omnibus omnes pro uno ac - helvitique confoederationis transire possit."},
           s, COLUMNS( sentArray ),
           pgha1, TEXTJOIN( " ", TRUE, IFERROR( SORTBY( INDEX( sentArray, 1, SEQUENCE( 1, p1Sent, RANDBETWEEN( 1, s - p1Sent ) ) ), RANDARRAY( 1, p1Sent, 0,1, FALSE) ), "" ) ),
           pgha2, TEXTJOIN( " ", TRUE, IFERROR( SORTBY( INDEX( sentArray, 1, SEQUENCE( 1, p2Sent, RANDBETWEEN( 1, s - p2Sent ) ) ), RANDARRAY( 1, p2Sent, 0,1, FALSE) ), "" ) ),
           pgha3, TEXTJOIN( " ", TRUE, IFERROR( SORTBY( INDEX( sentArray, 1, SEQUENCE( 1, p3Sent, RANDBETWEEN( 1, s - p3Sent ) ) ), RANDARRAY( 1, p3Sent, 0,1, FALSE) ), "" ) ),
           TEXTJOIN( pghDelimiter, TRUE, pgha1, pgha2, pgha3 ) )

您可以将其直接复制粘贴到您的工作簿中。它还有 12 个短语和 3、5、3 pgh 大小。它看起来是这样的。

在此处输入图片描述

答案2

如果发现数字,Excel RAND 函数应该会有所帮助。如果找不到,并且您习惯使用一些 VBA,则此页面上有一个部分可生成随机文本、数字和特殊字符结果。

https://www.extendoffice.com/documents/excel/642-excel-generate-random-string.html

希望这能有所帮助。

相关内容