Как выбрать значения в определенных диапазонах и сопоставить их с другими?

Как выбрать значения в определенных диапазонах и сопоставить их с другими?

У меня есть база данных 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

Вы должны иметь возможность сделать сводную таблицу. Просто используйте столбец B для столбцов. Столбец C для строк. Перейдите ко второй электронной таблице и вставьте таблицу. Она должна выбрать все данные и превратить их в таблицу. Добавьте соответствующие метки «Часы обучения» и «Часы работы». Затем нажмите «Сводная таблица».

  • Перетащите «Часы обучения» в поле «Метки столбцов».
  • Перетащите «Часы работы» в метки строк.
  • Перетащите "Часы обучения" на значения SUM(Sigma). Убедитесь, что там написано COUNT, а не SUM.
  • Сделайте то же самое с «Часами работы».

Надеюсь, это сработает.

Связанный контент