From your description, I didn't see any point overengineering to subtract array.
The logic is nothing but (in pseudo code)
ISNUMBER(SEARCH("1234",[Column2]))
AND
NOT(([Column1] or [Column3]) CONTAINS ("key phrase 1" or "key phrase 2"))
=FILTER(
Table1,
ISNUMBER(SEARCH("1234",Table1[Column2]))
*
(MMULT(--ISERROR(SEARCH({"key phrase 1","key phrase 2"},Table1[Column1]&Table1[Column3])),{1;1})=2)
)