Mover cada 7 columnas a una nueva fila en Excel [duplicar]


0

Esta pregunta ya tiene una respuesta aquí:

Tengo un conjunto de datos muy grande en Excel; Todos los puntajes de resultados están en una sola columna. Necesito que estos puntajes se separen en filas para que cada conjunto de 7 puntajes (es decir, puntajes 2-8, 9-16, etc.) estén en sus propias filas (cada fila será individual y cada columna será un anotar en un momento diferente con 7 veces en total).

¿Cómo puedo hacer esto en Excel?

Respuestas:


0

Como no ha indicado qué versión de Excel está utilizando, ni ha dado un ejemplo de sus datos. Así que cualquier "respuesta correcta" será una suposición salvaje.

Si tiene Excel 2010 y sus puntajes están separados por comas (es decir, 23-42, 11-17, 1-5), use Texto a columnas (Datos> Herramientas de datos> Texto a columnas; para separar los puntajes en columnas individuales .

Luego inserte una fila después de cada 7 filas separadas y use concatenado para unirlas en grupos de 7

=B1&C1&D1&E1&F1&G1&H1

Si esta no es la "respuesta correcta", dénos un ejemplo de los datos y díganos qué versión de Excel está utilizando.


0

Al igual que los otros carteles aquí, hice algunas suposiciones sobre sus datos. Vea abajo. Supongo que cada puntaje va con un nombre, a la vez, y hay 7 veces por nombre. Entonces, primero puede ordenar los datos por nombre. Luego, suponiendo que los "tiempos" no sean realmente relevantes, puede agregar una columna "TimeNumber". Finalmente, construya una tabla dinámica.

ingrese la descripción de la imagen aquí


0

La forma más fácil de hacer esto es con una macro VBA:

Sub Every7()
    Dim i As Integer, j As Integer, cl As Range
    Dim myarray(100, 6) As Integer 'I don't know what your data is.  Mine is integer data
    'Change 100 to however many rows you have in your original data, divided by seven, round up
    'remember arrays start at zero, so 6 really is 7

    If MsgBox("Is your entire data selected?", vbYesNo, "Data selected?") <> vbYes Then
        MsgBox ("First select all your data")
    End If

    'Read data into array
    For Each cl In Selection.Cells
        Debug.Print cl.Value
        myarray(i, j) = cl.Value
        If j = 6 Then
            i = i + 1
            j = 0
        Else
            j = j + 1
        End If
    Next

    'Now paste the array for your data into a new worksheet
    Worksheets.Add
    Range(Cells(1, 1), Cells(101, 7)) = myarray
End Sub

Esto lleva esto:

pic1

y lo transforma a esto:

pic2


@Scottch: eres realmente malo y seleccionas bloques y códigos completos y lo formateas. Estás intentando responder. Básicamente, cada sugerencia que hiciste no es apropiada como edición. No había razón para hacer este código más versátil.
Ramhound
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.