En un rango de celdas, ¿hay alguna forma de contar las que tienen cierto color de fondo?
En un rango de celdas, ¿hay alguna forma de contar las que tienen cierto color de fondo?
Aquí hay un ejemplo en AppleScript que contará el número de celdas en un rango que tiene la color de fondo de rojo.
TengaencuentaqueelobjetivoNúmerosdocumentoestabaabiertoyenelfondodeEditordesecuenciasdecomandos.
Cuandoseejecutóelscript,aparecióelsiguientecuadrodediálogo.
--#Userdefindedvariables.settheRangeto"A1:L10"
-- # The background color of the range’s cells. Expressed as a list of RGB (Red, Green, Blue)
-- # values, from 0 to 65535. For example, the color red is: {65535, 0, 0}
set R to 65535
set G to 0
set B to 0
-- # Other variables.
set thisColor to ""
set theRGBValue to {}
set theCount to 0
tell application "Numbers"
tell document 1
tell sheet 1
tell table 1
tell range theRange
repeat with i from 1 to (cell count)
set thisColor to background color of cell i as string
if thisColor is not "" then
set theRGBValue to (background color of cell i)
if item 1 of theRGBValue is equal to R and item 2 of theRGBValue is equal to G and item 3 of theRGBValue is equal to B then
set theCount to theCount + 1
end if
end if
end repeat
end tell
end tell
end tell
end tell
end tell
display dialog "The cell count with the color {" & R & ", " & G & ", " & B & "} is: " & theCount buttons {"OK"} default button 1
Nota: Esto se probó en una versión anterior de Números (09 ver 2.3) y es posible que deba ajustarse para versiones más nuevas.
Si no sabes cuál es el RGB valor de un cell
dado, enchufarlo en el script anterior, y luego a obtenga el RGB valor del background color
de un cell
dado, por ejemplo F5
, use:
tell application "Numbers"
get background color of cell 1 of range "F5:F5" of table 1 of sheet 1 of document 1
end tell
Solo un FYI, codifiqué el ejemplo principal más arriba en la forma larga y podría condensarse hasta lo siguiente para el bloque tell application "Numbers"
:
tell application "Numbers"
tell range theRange of table 1 of sheet 1 of document 1
repeat with i from 1 to (cell count)
if (background color of cell i as string) is not "" then
set theRGBValue to (background color of cell i)
if item 1 of theRGBValue is equal to R and item 2 of theRGBValue is equal to G and item 3 of theRGBValue is equal to B then
set theCount to theCount + 1
end if
end if
end repeat
end tell
end tell
Lea otras preguntas en las etiquetas numbers