¿Cómo seleccionar valores dentro de rangos definidos y compararlos con otros?

¿Cómo seleccionar valores dentro de rangos definidos y compararlos con otros?

Tengo una base de datos en Access, construida a partir de una encuesta a estudiantes universitarios. Entre otras cosas, hay campos para cuántas horas semanales dedican los estudiantes a leer el material de clase y, si tienen trabajo, cuántas horas semanales trabajan.

Lo que necesito hacer es crear una tabla. Cada columna de la tabla debe contener un rango de horas de estudio. Por ejemplo, la columna 1 sería "hasta 5 horas", la columna 2 debería ser "entre 5 y 10 horas", y así sucesivamente. Las filas deben ser iguales, pero con horario laboral. La idea es que, por ejemplo, uno pueda preguntar "De los estudiantes que estudian muy poco, ¿cuántos lo hacen porque no tienen tiempo porque trabajan?", y luego marques la opción "Hasta 5 horas de "Estudia una semana", y verás cuántos estudiantes no trabajan, cuántos trabajan un poco y cuántos trabajan mucho.

Me doy cuenta de que esto puede no estar muy claro, por lo que tal vez sería útil una representación aproximada de la tabla (los números son inventados):

             |   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  |
-------------+-----+------+-------+-----+

Aquí podemos ver que muy pocos logran estudiar y trabajar mucho, mientras que muchos tienen mucho tiempo pero no estudian mucho.

Lo que necesito es una forma de crear una tabla como esta, usando Access o quizás Excel si es más adecuado para esto. Conozco algo de SQL, así que está bien usarlo para esto.

Respuesta1

Hay un par de formas de hacer esto. La forma más sencilla es convertir sus datos a esas etiquetas y crear una tabla dinámica con ellos.

Así que cargue sus datos en Excel en una hoja de cálculo connombre del estudiante,horasEstudiar,horasTrabajo

Luego abrí una macro VBA "rápida". Soy principalmente un tipo C3, pero me sorprendió lo difícil que fue encontrar un tutorial de Excel VBA decente. Todos ellos eran para no programadores y ninguno era para programadores que simplemente no sabían cómo navegar en Excel. Así que pido disculpas si esto no funciona la primera vez. . .

Inicie el editor VBA, péguelo y ejecútelo. . .

' 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

Deberías poder hacer esta tabla dinámica. Simplemente use la Columna B para Columnas. Columna C para Filas Vaya a la segunda hoja de cálculo e inserte la tabla. Debe seleccionar todos los datos y convertirlos en una tabla. Agregue etiquetas apropiadas "Horas de estudio" y "Horas de trabajo". A continuación, haga clic en Tabla dinámica.

  • Arrastre "Horas de estudio" al cuadro Etiquetas de columna.
  • Arrastre "Horas de trabajo" a las etiquetas de fila.
  • Arrastre "Horas de estudio" a los valores SUMA(Sigma). Asegúrese de que diga CONTAR y no SUMA.
  • Haz lo mismo con las "Horas de Trabajo"

Espero que funcione.

información relacionada