AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1651447
Accepted
Suncatcher
Suncatcher
Asked: 2021-05-26 02:56:52 +0800 CST2021-05-26 02:56:52 +0800 CST 2021-05-26 02:56:52 +0800 CST

在 Excel 表格中生成虚拟文本

  • 772

当我想在 MS Word 中创建类似lorem ipsum的文本时,我使用

=rand()

它工作得很好。我立即得到一段胡言乱语的文本,我可以将其用于我的目标。

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

=pwrRANDOMTEXT()

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

Excel 中是否有一个真正有效的lorem ipsum生成器?

PS Excel 版本是最新的,包含在 O365 Apps for Enterprise 中。版本 2104 内部版本 13929

microsoft-excel worksheet-function
  • 2 2 个回答
  • 1194 Views

2 个回答

  • Voted
  1. Best Answer
    mark fitzpatrick
    2021-05-26T10:43:22+08:002021-05-26T10:43:22+08:00

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

    这个公式可能会使用一些 tweeking,但它可以产生一串“类似句子”的字符。

    =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 ) )
    

    您需要在三个段落中的每个段落中输入您想要的句子数。它们是p1Sent、p2Sent和p3Sent。我将其设置为 3、5 和 3。

    接下来,您需要告诉它如何分隔段落。我这里是双倍行距,所以我将pghDelimiter设置为 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 大小。这就是它的样子。

    在此处输入图像描述

    • 3
  2. BradR
    2021-05-26T10:28:12+08:002021-05-26T10:28:12+08:00

    如果找到数字,Excel RAND 函数应该会有所帮助。如果不是这样,并且您对使用一点 VBA 感到满意,那么此页面上有一个部分会生成随机文本、数字和特殊字符结果。

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

    希望这会有所帮助。

    • 0

相关问题

  • 如何对整列使用 Excel 的 LENGTH 函数?

  • Excel 数组(2 个变量)

  • 如何从 WSL 打开 office 文件

  • VBA根据文件名重命名工作表

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve