用於選擇隨機 DVD 的電子表格論壇問題

用於選擇隨機 DVD 的電子表格論壇問題

我的 Windows 7 筆記型電腦上的 OpenOffice 電子表格(版本 3.3.0)中有我的 (279) DVD 列表,我想創建一個公式來隨機選擇要觀看的電影(在我無法彌補我的情況時)頭腦)。這有效:

=RANDBETWEEN(1;279)

但它給出的只是一個數字,我必須上下滾動才能檢查它,它還包含“硬編碼”的 DVD 總數。我想顯示電影的名稱(保存在 A 列中),例如,如果數字是 277,則會出現電影的名稱,在本例中為“X 戰警 2”。我假設只需在前面添加列字母,如下所示:

=A(RANDBETWEEN(1;279))

可以工作,但會拋出錯誤:#NAME?

那麼,我該如何...

  1. 讓它顯示電影的名稱
  2. 新增 DVD 時自動偵測最高數字,這樣我就不必將其硬編碼到公式中?
  3. 如何才能使我只需單擊單元格即可重新生成新的隨機數? (即不必按 Shift+Ctrl+F9 手動重新計算)

謝謝。

答案1

  1. 傳回 A 列、行的值, 您可以使用=INDIRECT("A"&)

  2. 要計算 A 列中位數的數量,您可以使用=COUNTA(A1:A65536)

    所以對於你的情況,你可以使用=INDIRECT("A"&RANDBETWEEN(1;COUNTA(A1:A65536)))

  3. 您也許可以製作一個巨集按鈕來為您重新計算。我對 OpenOffice.org Calc 的宏語言了解不夠,無法提供更多協助。

答案2

我對 OpenOffice 的內部結構不太熟悉,無法幫助滿足您的第三個請求,只是說普通的 F9 對我來說就有效,不需要轉換或控制。至於另外兩個:

=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 RowsHorizontal Scroll BarsVertical Scroll BarsSheet tabs獲得非常乾淨的外觀(您可能需要在下次建立新的空白電子表格時重新開啟這些)
  • 儲存您的電子表格
  • ???
  • 利潤

電影選擇器

答案4

為了方便起見,請在 A 列中對 DVD 進行編號,並將 DVD 的名稱放在 B 列中(A2 = A1 + 1如果您想讓它更容易,可以使用公式進行編號)。

假設 n = DVD 開頭上方的行數,例如如果您有列標籤。

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

相關內容