There are two or three points at which I may easily have lost you, I can only guess which apply.
The first is that I use Excel Tables that allows me to use
structured references in place of the traditional A1-style of referencing. This allows the column of employee IDs to be referred to as
= Table1[Employee ID]
and an individual ID within the same record becomes
= Table1[@[Employee ID]]
This would allow
@bosco_yip's solution to be presented in the form
= COUNTIFS(
Table1[[Employee ID]], Table1[@[Employee ID]],
Table1[First Name], Table1[@[First Name]],
Table1[Last Name], Table1[@[Last Name]] )
<>
COUNTIFS( Table1[[Employee ID]], Table1[@[Employee ID]] )
That is far longer but it can be read without referring to the worksheet and looking up the content of cells. It also does not change whenever Table1 is moved.
The next point at which I may have left you is in my use of defined Names to store and evaluate formulas. Thus I could take the entire formula and, using
Name Manager, define a Name 'multiple.names?' that refers to it. The conditional format would then be based upon
= multiple.names?
The final point is that I have used new functions that, as yet, are only available in some (
Dynamic Array) versions of Office 365.
Altogether this offers a style of Excel programming that makes no concessions to the knowledge or ability of the end user. The point is that because 'everyone knows how to write a spreadsheet' it doesn't make it the only (or even the best) way. There is no harm in being aware of other options even if you choose not to adopt them.