
我的 Windows 7 筆記型電腦上的 OpenOffice 電子表格(版本 3.3.0)中有我的 (279) DVD 列表,我想創建一個公式來隨機選擇要觀看的電影(在我無法彌補我的情況時)頭腦)。這有效:
=RANDBETWEEN(1;279)
但它給出的只是一個數字,我必須上下滾動才能檢查它,它還包含“硬編碼”的 DVD 總數。我想顯示電影的名稱(保存在 A 列中),例如,如果數字是 277,則會出現電影的名稱,在本例中為“X 戰警 2”。我假設只需在前面添加列字母,如下所示:
=A(RANDBETWEEN(1;279))
可以工作,但會拋出錯誤:#NAME?
那麼,我該如何...
- 讓它顯示電影的名稱
- 新增 DVD 時自動偵測最高數字,這樣我就不必將其硬編碼到公式中?
- 如何才能使我只需單擊單元格即可重新生成新的隨機數? (即不必按 Shift+Ctrl+F9 手動重新計算)
謝謝。
答案1
傳回 A 列、行的值右, 您可以使用
=INDIRECT("A"&
右)
要計算 A 列中位數的數量,您可以使用
=COUNTA(A1:A65536)
所以對於你的情況,你可以使用
=INDIRECT("A"&RANDBETWEEN(1;COUNTA(A1:A65536)))
您也許可以製作一個巨集按鈕來為您重新計算。我對 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
關閉該框Properties
X
- 在
Form Controls
工具列中,關閉Design Mode
- 現在,當您按一下儲存格時,
B1
顯示的影片名稱應該會改變 - 如果需要,可以關閉工具列
- 在儲存電子表格之前,您可以進入
Tools > Options > OpenOffice.org Calc > View
並關閉Window:
Column Headers and Rows
、Horizontal Scroll Bars
並Vertical Scroll Bars
以Sheet tabs
獲得非常乾淨的外觀(您可能需要在下次建立新的空白電子表格時重新開啟這些) - 儲存您的電子表格
- ???
- 利潤
答案4
為了方便起見,請在 A 列中對 DVD 進行編號,並將 DVD 的名稱放在 B 列中(A2 = A1 + 1
如果您想讓它更容易,可以使用公式進行編號)。
假設 n = DVD 開頭上方的行數,例如如果您有列標籤。
=INDEX(B:B, RANDBETWEEN(1, MAX(A:A)) + n, 1)