I adjusted your formula to 19000 rows but it doesn't appear to be working. Looks like it's highlighting random cells along with cells that have the text value. I'm wondering if the D3 cell reference is causing the issue?
=AND(COUNTIF(D2:D19000,"*")-COUNTIF(D2:D19000,LOOKUP(2,1/(D2:D19000<>""),D2:D19000))=0,D2="",D3<>"")