回覆列表
-
1 # 布衣公子
-
2 # Excel到PowerBI
用Excel做一個自動出題的表格非常簡單,上次我在陪兒子參加他們的詞彙比賽之前就做了一個簡單,即:從一系列單詞裡,隨機提取9個單詞放入九宮格內,然後給1分鐘的時間記憶……,具體如下:
一、準備單詞表當然,準備單詞表的同時,還可以在Excel裡做個網路的解析(這個公式看起來長,其實就是一個函式而已,其中是一長串的網址)和背誦進度的記錄等等,如下圖所示:
二、透過函式完成出題1、結合RandBetween函式、CountA函式隨機獲取單詞位置,如下圖所示:
2、透過Index函式根據隨機位置抽取單詞,如下圖所示:
當然,你可以將這些函式組合起來寫成一個公式,也非常簡單,自己動手試一下即可。總的來說,用Excel自動出題並不難,關鍵是對Excel中常用的函式掌握好。
【60+函式彙總案例】
【資料透視基礎精選10篇】
【Power Query入門到實戰80篇】
【Power Pivot 基礎精選15篇】
-
3 # 不識真心
先在某一列填入題庫,在另一列寫入隨機函式randbetween來得到隨機數,在另一列用indirect函式依靠隨機數抽取題庫列的單詞,會有少量重複,但是簡單容易實現。每次按一下空格鍵就可以重新出題。
1、新建一個EXCEL工作簿,命名為“隨機出題”,將第一個工作表命名為“題庫”,新建一個工作表,命名為“試卷”。具體方法請參見如上動圖。
2、在名為“題庫”的工作表中,A列為編號,B列為英文,C列為中文。將題目對應貼上進去。在名為“試卷”的工作表A1單元格錄入“題目”二字作為標題。具體方法請參見如上動圖。
Sub 隨機出題()
Dim d As Object, arr, rng As Range, arr1, n As Integer, i As Integer, j As Integer, x As Long
Set d = CreateObject("scripting.dictionary")
x = Application.CountA(Sheets("題庫").Range("a:a"))
line1: i = InputBox("請輸入隨機出題數量", "出題數量")
If i > x Then
MsgBox ("數量超出題目總數" & x & ",請重新輸入")
GoTo line1
End If
line2: j = InputBox("請輸入隨機出題型別", "出題型別", "1為英文,2為中文")
If j <> 1 And j <> 2 Then
MsgBox ("輸入內容不符合要求,請重新輸入")
GoTo line2
End If
Do
d.Item(Application.RandBetween(1, i)) = ""
Loop Until d.Count = i
ReDim arr(1 To d.Count * 2)
For Each arr1 In d.keys
n = n + 1
Set rng = Sheets("題庫").Range("a:a").Find(arr1)
arr(n) = n & "、" & rng.Offset(0, j).Value
Next
Rows("2:1048576").Clear
Range("a2").Resize(d.Count * 2, 1) = Application.Transpose(arr)
End Sub
5、將檔案另存為字尾名為.xlsm的格式。具體方法請參見如上動圖。
6、具體使用方法如上動圖。