电子表格公式问题来选择随机 DVD

电子表格公式问题来选择随机 DVD

我的 Windows 7 笔记本电脑上的 OpenOffice 电子表格 (版本 3.3.0) 中有一个我的 (279) DVD 列表,我想创建一个公式来随机选择一部电影观看(用于我拿不定主意的时候)。这有效:

=RANDBETWEEN(1;279)

但它给出的只是一个数字,我必须上下滚动才能检查,它还“硬编码”了 DVD 的总数。我想显示电影的名称(保存在 A 列中),这样,如果数字为 277,就会显示电影的名称,在本例中为“X-Men 2”。我假设只需在前面添加列字母,如下所示:

=A(RANDBETWEEN(1;279))

可以工作但是它会引发一个错误:#NAME?

那么,我该如何...

  1. 让它显示电影名称
  2. 当我添加新的 DVD 时自动检测顶部数字,这样我就不必将其硬编码到公式中?
  3. 我怎样才能只需单击单元格即可重新生成一个新的随机数?(即不必按 Shift+Ctrl+F9 手动重新计算)

谢谢。

答案1

  1. 要返回 A 列、行R, 您可以使用=INDIRECT("A"&R)

  2. 要计算 A 列中的值的数量,可以使用=COUNTA(A1:A65536)

    因此,对于你的情况,你可以使用=INDIRECT("A"&RANDBETWEEN(1;COUNTA(A1:A65536)))

  3. 您可能可以制作一个宏按钮来重新计算。我对 OpenOffice.org Calc 的宏语言了解不够多,因此无法提供更多帮助。

答案2

我对 OpenOffice 的内部结构不够熟悉,无法帮助您解决第三个请求,只能说对我来说,只需按 F9 即可,不需要 shift 或 control。至于其他两个,不过:

=INDIRECT(ADDRESS(RANDBETWEEN(1,MATCH("*",$A$1:$A$50000,-1)),1))

50000如果您拥有或认为您将拥有超过 50000 张 DVD,请将 替换为更大的数字,并且如果它在 以外的列中,请替换函数1中的。ADDRESS()A

答案3

  • 将 Bavi_H 答案中的公式放入单元格B1( =INDIRECT("A"&RANDBETWEEN(1;COUNTA(A1:A65536))))中
  • 让宽度和高度变得B1又大又好
  • B1采用大号美观字体进行格式化,以便长电影标题仍能适合
  • 选择列中的任意单元格A并选择菜单项Format > Column > Hide
  • 选择Tools > Macros > Record Macros菜单项
  • 按 F9(或 Ctrl-Shift-F9)
  • 点击Stop Recording按钮
  • Basic Macros Dialog出现的字段中输入名称(如“刷新”)Macro name,在框中选择电子表格Save macro in,单击Save并输入模块名称(如“电影”),单击OK
  • 选择菜单项View > Toolbars > Form Controls
  • 在该工具栏中,确保Design Mode按钮已打开
  • 按下Form Design按钮使表单设计工具栏可见
  • Form Design工具栏中,关闭Open in Design Mode按钮
  • Form Controls工具栏中,单击Label Field按钮
  • 将光标从单元格 B1 的左上角拖到其右下角,以创建与单元格大小相同的标签字段
  • 右键单击单元格/标签并Control...从上下文菜单中选择项目
  • 选择选项卡,然后从字段General中删除文本Label
  • 选择选项Events卡,单击...按钮
  • Assign Action对话框中,单击Macro...按钮
  • Macro Selector对话框中,展开框中电子表格下的条目,Library直到看到之前使用的模块名称(例如“电影”),然后单击它
  • Macro name框中,选择您之前创建的宏(例如“刷新”)
  • 单击OK,单击,然后单击右上角的按钮OK关闭该框PropertiesX
  • Form Controls工具栏中,关闭Design Mode
  • 现在,当您单击单元格时,B1显示的电影名称应该会改变
  • 如果需要,请关闭工具栏
  • 在保存电子表格之前,您可以进入Tools > Options > OpenOffice.org Calc > View并关闭Window: Column Headers and Rows、和Horizontal Scroll Bars,以获得非常干净的外观(下次创建新的空白电子表格时可能需要重新打开它们)Vertical Scroll BarsSheet tabs
  • 保存电子表格
  • ???
  • 利润

电影选择器

答案4

为了方便起见,请在 A 列中对 DVD 进行编号,并在 B 列中输入 DVD 的名称(A2 = A1 + 1如果您想使其更容易,可以使用公式进行编号)。

假设 n = DVD 开始位置上方的行数,例如如果您有列标签。

=INDEX(B:B, RANDBETWEEN(1, MAX(A:A)) + n, 1) 

相关内容