Like dlanor it looks like there is something to compare to and find.
To avoid going around in circles with any code some one may post, need to know
3=green
4=red
5= cyan
and so on.
Please provide the lookup values and a sample dwg simple as you have posted as a image.
This is not real code for you but a bit of code I found may not work not tested.
Code:
(defun HATLOT (lotnum col / HATOBJ FPTS PT1 TPT )
(SETQ OLDSNAP (GETVAR "OSMODE"))
(SETVAR "OSMODE" 0)
(setq lotfound (ssget "X" (LIST (CONS 0 "MTEXT")(CONS 1 lotnum)(CONS 8 "C-BLDG-NMBR"))))
(SETQ TPT (ASSOC 10 (ENTGET (ssname lotfound 0))))
(SETQ PT1 (LIST (NTH 1 TPT)(NTH 2 TPT)))
(SETQ FPTS (LIST (POLAR PT1 1.57 2 ) PT1)) ; 2 is a dummy value just past text hole
(SETQ HATOBJ (ENTGET (SSNAME (SSGET "f" FPTS '((0 . "HATCH"))) 0)))
(ENTMOD (subst col (assoc 8 HATOBJ) HATOBJ))
)
; this is where you would loop through the lots csv from excel number - color
;(while read csv
(setq lotnum (getstring "\nEnter lot number")) ; read from file
(SETQ COL (cons 8 "60% complete")) ; dummy line for testing make value read from file
(HATLOT lotnum perc)
;) ; end while
(setvar "osmode" oldsnap)
(princ)