3 votos

¿Cómo puedo hacer que Numbers copie automáticamente una fila de datos de una hoja a otra hoja?

Tengo una hoja de cálculo de Numbers que tiene datos de años en ella. Me gustaría destacar filas específicas en la hoja de cálculo y copiar solo esas filas en una nueva hoja en el mismo archivo donde me gustaría que se recopilaran los datos. Las filas que quiero destacar contienen todas dos palabras específicas en la misma columna.

Por lo tanto, idealmente, me gustaría una función que coincida con una búsqueda de "john doe" en hoja 1-tabla 1-columna G, seleccionar toda la fila de datos, copiarla y pegarla en hoja 2.

¿Qué función o varias funciones puedo usar para lograr esto?

0 votos

¿Quieres copiar una fila o filas por número, o hacer algún tipo de búsqueda? Esa segunda oración me confundió.

0 votos

Cualquier fila que tenga la frase "john doe" en la columna G.

1voto

John M Gant Puntos 6147

No sé si es posible hacer esto con funciones, pero podría ser. Existe una función llamada VLOOKUP que parece que haría lo que quieres, pero no pude lograr que funcionara completamente mientras experimentaba con ella: una función que existe dentro de una celda tiene dificultades para devolver varios valores para varias celdas.

Lo que creo que funciona, aunque quizás no sea tan conveniente como quisieras, es la vista de filtro. En el lado derecho de la ventana, si seleccionas la vista que dice "Ordenar y filtrar" y la pestaña Filtro, puedes "Agregar un filtro" que coincidirá con un valor en una columna especificada. Alternar ese filtro usando el cuadro de selección en la esquina de la caja de ese filtro ocultará todas las filas que no cumplan con ese criterio, luego es simplemente cuestión de resaltar todas las celdas, copiar y pegar en otra hoja.

Desafortunadamente, esto no seguirá añadiendo filas a medida que agregas filas en la primera hoja, por lo que si esa funcionalidad es algo que necesitas, esto no responderá tu pregunta. Sin embargo, si solo necesitas una copia única, creo que esta es la opción más fácil (y la única que conozco, pero no estoy extremadamente familiarizado con Numbers).

0 votos

No puedo parecer encontrar que VLOOKUP haga lo que quiero, pero está muy cerca. Pero el filtro es una sugerencia fantástica, simplemente no contiene la automatización como mencionaste. Si no puedo encontrar una buena alternativa, esto será lo que tendré que hacer.

0 votos

Parecía que podría funcionar, pero no puede manejar múltiples coincidencias. Si lo descubres, ¡definitivamente publica una respuesta propia! Estoy interesado en cómo funcionaría.

-1voto

Mockman Puntos 16

Obviamente, esta es una pregunta antigua pero apareció para mí y es algo que ocasionalmente he querido hacer, así que pensé en publicar una respuesta tardía.

Anticipa que el documento 1 tendrá dos tablas en la hoja 1, y que el tamaño de la tabla 2 puede abarcar los datos copiados. Si la columna clave es de un formato especial (por ejemplo, fecha) entonces no funcionará, ya que las fechas requieren un manejo especial, así que cambia su formato a texto. Y obviamente, no tiene manejo de errores.

tell application "Numbers"
    tell table 1 of sheet 1 of document 1
        -- debido a la necesidad indecente y desesperada de Numbers de envolver texto
        set text wrap of cell range to false

        set kc to column "C" -- columna clave
        set rp to (cells of kc whose value contains "Septiembre") -- filas coincidentes
        set hr to {} -- Obtener encabezados para copiar en la tabla 2
        copy value of cells of row 1 to hr
        set db to {} -- obtener valores de celda de las filas coincidentes
        repeat with rs in rp
            copy value of cells of row of rs to end of db
        end repeat
        -- los datos de cada fila aparecerán así: {3.0, "Dom", "24 de septiembre", "W", "Denver Broncos"}
    end tell
        -- set db to rest of db -- Si la fila de encabezados contiene coincidencias, entonces descomentar

    tell table 2 of sheet 1 of document 1
        clear cell range
        set rc to count of db -- conteo de filas
        set cc to count of item 1 of db -- conteo de columnas
        repeat with y4 from 1 to rc -- por cada fila
            repeat with x8 from 1 to cc -- por cada columna
                set value of cell x8 of row (y4 + 1) to item x8 of item y4 of db
            end repeat
        end repeat
        tell row 1 -- Establecer los encabezados de la tabla para que coincidan con la tabla 1
            repeat with j from 1 to count of columns
                set value of cell j to item j of hr
            end repeat
        end tell
        set text wrap of cell range to false -- ver arriba
    end tell
end tell

Esto no es parte de la respuesta, pero carga datos de muestra en la tabla 1 (mínimo 5x5)

tell application "Numbers"
    tell table 1 of sheet 1 of document 1
        set column count to 5
        set row count to 5
        set ev to {{"Semana", "Día", "Fecha", "WL", "Rival"}, {2.0, "Dom", "17 de septiembre", "L", "Carolina Panthers"}, {3.0, "Dom", "24 de septiembre", "W", "Denver Broncos"}, {4.0, "Dom", "1 de octubre", "W", "Atlanta Falcons"}, {5.0, "Dom", "8 de octubre", "L", "Cincinnati Bengals"}}
        set evy to count of ev
        set evx to count of item evy of ev
        repeat with y from 1 to (evy)
            repeat with x from 1 to evx
                set value of cell x of row y to item x of item (y) of ev
            end repeat
        end repeat
    set format of column "C" to texto -- el formato de fecha requiere un manejo especial
    set text wrap of cell range to false

Nota sobre el formato de fecha: No puedes comparar una cadena con el mes de un objeto de fecha. Probablemente podrías crear un método descomponiendo las celdas de fecha: set x to value of cell "C2", set y to month of x, set z to x as text pero debería ser más fácil convertirlo a texto, ejecutar el script normalmente y si es necesario, convertirlo de regreso a fecha.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X