Hi Alan,
Try this function. You can test if the table was found before manipulating it. Table functions typically work only inside tables, but the #+NAME line is part of it although it is before the table itself (as defined by function org-table-begin).
(defun my/org-table-find-by-name (str)
"Move point to the first table of the buffer with STR in the name.
The point does not move if the table is not found.
Returns the new position if successful, nil otherwise.
"
(interactive "sTable name substring: ")
(let ((re (concat "#\\+NAME:.+" str))
(loc-table nil))
(setq loc-table (save-excursion
(goto-char (point-min))
(re-search-forward re nil t)))
(if (number-or-marker-p loc-table)
(goto-char loc-table))))
-Heikki