如何選擇定義範圍內的值並將其與其他值進行比對?

如何選擇定義範圍內的值並將其與其他值進行比對?

我有一個 Access 資料庫,是根據對大學生的調查建立的。除此之外,還有一些欄位顯示學生每週花多少小時閱讀課程材料,如果他們有工作,每週工作多少小時。

我需要做的是建立一個表。表中的每一列應該是一個學習時間範圍。例如,第 1 列應為“最多 5 小時”,第 2 列應為“5 到 10 小時之間”,依此類推。行應該相同,但包含工作時間。這個想法是,例如,人們可以問“在學習很少的學生中,有多少人這樣做是因為他們工作而沒有時間?”,然後你檢查“最多 5 小時的學習時間”。 ,你會看到有多少學生不工作,有多少學生做了一點工作,有多少學生做了很多工作。

我意識到這可能不是很清楚,所以也許表格的粗略表示會有所幫助(數字是編造的):

             |   Hours of study         |
             | < 5 | 5-10 | 10-15 | 15+ |
-------------+-----+------+-------+-----+
Hours  <10   |  35 |  15  |   10  |  5  |
 of   10-40  |  30 |  18  |   7   |  2  |
work   40+   |  40 |  10  |   3   |  1  |
-------------+-----+------+-------+-----+

在這裡我們可以看到,很少人能夠大量學習和工作,而許多人有充足的時間,但學習不多。

我需要的是一種建立這樣的表格的方法,使用 Access 或 Excel(如果更適合的話)。我懂一些 SQL,所以用它來做這個是沒問題的。

答案1

有幾種方法可以做到這一點。最簡單的方法是將資料轉換為這些標籤並從中製作資料透視表。

因此,將資料載入到 Excel 電子表格中:學生姓名,小時學習,工作時間

然後我打出了一個「快速」VBA 巨集。我基本上是一個 C3 人,但我很驚訝找到一個像樣的 Excel VBA 教學是多麼困難。所有這些都適合非程式設計師,沒有一個適合不知道如何操作 Excel 的程式設計師。因此,如果第一次不起作用,我深表歉意。 。 。

啟動 VBA 編輯器,貼上並運行它。 。 。

' Takes your spreadsheet of hours in sheet 1 and turns them into your measured values
' Then simply take the second worksheet and turn it into a pivottable

Sub StudyAndWork()
    Dim i as Integer
    i = 0
    Do
        Select Case Worksheets(1).Range("B" & i).Value
            Case Is < 5
                Worksheets(2).Range("B" & i).Value = "<5"
            Case 5 To 10
                Worksheets(2).Range("B" & i).Value = "5 to 10"
            Case 10 To 15
                Worksheets(2).Range("B" & i).Value = "10 to 15"
            Case Else
                Worksheets(2).Range("B" & i).Value = ">15"
        End Select
    i = i + 1
    Loop Until IsNull(Worksheets(1).Range("B" & i).Value)

    i = 0
    Do
        Select Case Worksheets(1).Range("C" & i).Value
            Case Is < 10
                Worksheets(2).Range("C" & i).Value = "<10"
            Case 10 To 40
                Worksheets(2).Range("C" & i).Value = "10 - 40"
            Case Else
                Worksheets(2).Range("C" & i).Value = "40+"
        End Select
    i = i + 1
    Loop Until IsNull(Worksheets(1).Range("C" & i).Value)
End Sub

您應該能夠對此進行資料透視表。只需使用 Column B 作為列即可。行的 C 列 前往第二個電子表格並插入表格。它應該選擇所有數據並將其轉換為表格。加入適當的標籤「學習時間」和「工作時間」。接下來,按一下資料透視表。

  • 將「學習時間」拖曳到「列標籤」方塊中。
  • 將「工作時間」拖曳至行標籤。
  • 將「學習時間」拖曳至 SUM(Sigma) 值。確保它顯示的是 COUNT,而不是 SUM。
  • 對「工作時間」進行同樣的操作

希望有效。

相關內容