Logical
Compare two tables or columns cell-by-cell for differences (audit & reconciliation)
Count value differences between aligned snapshots and list the old record IDs for rows containing a difference.
Compare aligned snapshots by position
Compare A2:C4 with E2:G4 only after ensuring both snapshots have corresponding records in the same order. This is a positional comparison, not a join by ID; inserted, removed or reordered records need separate reconciliation.
The total counts unequal cell values, including ID changes. The row list includes an old ID whenever any of the three fields differs. It does not compare styles, comments, formulas that produce equal results or every type of data-quality issue.
Ordinary spreadsheet inequality is not a case-sensitive text audit and can coerce blank and zero values. Use a dedicated exact-text or typed comparison if those distinctions matter. No fixed performance time is promised.
| Snapshot 1 (A:C) | Snapshot 2 (E:G) | Cell Diffs on Row | Audit Status |
|---|---|---|---|
| EMP-1 | L4 | $95,000 | EMP-1 | L4 | $95,000 | 0 diffs | Identical |
| EMP-2 | L5 | $115,000 | EMP-2 | L6 | $128,000 | 2 diffs (Level + Pay!) | Flagged |
| EMP-3 | L3 | $78,000 | EMP-3 | L3 | $81,000 | 1 diff (Pay) | Flagged (Total = 3 cell diffs, 2 rows) |
Count total mismatched cells and list modified record IDs
SUM((A2:C4 <> E2:G4) * 1) totals every changed cell across all 3 columns and 3 rows simultaneously.
=SUM((A2:C4 <> E2:G4) * 1)Extract the list of Record IDs where any field changed
Adds column-by-column inequality flags so any row with 1 or more modified fields is spilled.
=TEXTJOIN(", ",TRUE,FILTER(A2:A4,((A2:A4<>E2:E4)+(B2:B4<>F2:F4)+(C2:C4<>G2:G4))>0,"No Changes"))Try the example
Use the original values or change them to test your understanding.