Something a little more flexible might be --
(defun RemoveFromPicksetIf ( ss func )
;; The supplied func must take one
;; argument, an ename. What it does
;; we don't care, but if it returns
;; a non nil result remove the entity
;; from the pickset
(if (eq 'pickset (type ss))
(repeat (setq i (sslength ss))
(if
(func
(setq ename
(ssname ss
(setq i (1- i))
)
)
)
(ssdel ename ss)
)
)
)
ss
)
Then he'd might use it thusly --
(setq ss
(RemoveFromPicksetIf
(ssget
'( (0 . "INSERT")
(2 . "R-NAME")
(66 . 1)
)
)
(lambda (ename)
(eq "345AD7"
(cdr
(assoc 5
(entget ename)
)
)
)
)
)
)