정의된 범위 내의 값을 선택하고 다른 값과 일치시키는 방법은 무엇입니까?

정의된 범위 내의 값을 선택하고 다른 값과 일치시키는 방법은 무엇입니까?

저는 대학생을 대상으로 한 설문 조사를 통해 구축된 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(시그마) 값으로 끌어옵니다. SUM이 아닌 COUNT로 표시되는지 확인하세요.
  • "근무 시간"에도 동일한 작업을 수행하세요.

효과가 있기를 바랍니다.

관련 정보