EXACT in Calligra Sheets: Compare Text with Case Sensitivity
Compare two text values exactly in Calligra Sheets, including capitalization and spaces, with realistic examples and error checks.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
Quick answer: =EXACT(A2;B2) asks whether two text values match character for character. It returns TRUE for equal strings and FALSE otherwise. The pinned implementation compares the two strings directly, so Calligra and calligra do not match. It also considers meaningful trailing spaces: "ABC" differs from "ABC ". This is useful for validating codes or detecting a changed value without altering either input.
This guide is checked against the official KDE EXACT entry and the Calligra 26.08.2 pinned text implementation. All worksheet results below are independently evaluated expectations, not results seen in the application.
Availability and version history
- Introduced: Documented by 26.08.2; original introduction not established.
- Availability: Supported in Calligra Sheets 26.08.2, based on the function-specific registration.
- Scope: The official application listing provides Linux installation; other packaged builds are unverified here.
- Checked: October 14, 2026. Documentation/source check; no new native test in Calligra Sheets 26.08.2.
When EXACT is useful
EXACT is appropriate when capitalization and every character matter: checking case-sensitive product codes, comparing imported identifiers, catching an extra space in a file reference, or validating two copies of a record before approval. It is not a password manager or a secure equality test, and a text formula does not prove that a data source itself is trustworthy. For free-form names or fuzzy matching, a strict equality rule may create excessive false alarms.
Unlike simply displaying two cells side by side, EXACT exposes hidden differences as a Boolean. It does not tell you where the mismatch occurred. Pair it with LEN for length differences, or inspect the inputs before normalizing them. Do not use a lowercasing function first when case itself is the evidence you need.
Exact syntax, order and return type
=EXACT(string1;string2)
| Position | Argument | Required? | Official type | Meaning | Default |
|---|---|---|---|---|---|
| 1 | string1 |
Yes | Text/string | First text value or cell reference | None |
| 2 | string2 |
Yes | Text/string | Second text value or cell reference | None |
The KDE handbook labels the result Boolean (TRUE or FALSE), and both text arguments are required. The function’s pinned source implementation converts each argument to a string and evaluates s1 == s2. That is a case-sensitive comparison of the resulting strings, not a locale-aware or case-folded comparison. Calligra also has a separate COMPARE function with a caller-specified case-sensitivity argument; do not confuse its three parameters with EXACT’s two.
Release and platform scope: This guide targets the October 8, 2026 Calligra 26.08.2 source; registry, XML help, and documentation checked October 11, 2026. Source registration confirms availability in the shipped module, not that a particular package was installed or tested. Linux distro and Flatpak builds can differ; Windows runtime availability was not independently verified.
Locale and input conversion: The official English KDE handbook uses a semicolon between function arguments. Your local formula language may require another separator. EXACT’s explicit text comparison is not numeric-format equivalence. The implementation first converts inputs to strings, so formatted numbers, dates, booleans, empty cells and imported data types need a real test rather than a blanket promise about coercion. Use text cells in these reproducible examples.
Reproducible worksheet: compare an incoming code to an expected code
- Put
Received codeinA1,Reference codeinB1, andExact match?inC1. - Enter the seven pairs below as text in columns A and B. If your input method auto-capitalizes text, verify the cell contents before continuing.
- In
C2enter=EXACT(A2;B2), then fill throughC8. - Compare the TRUE/FALSE outputs with this expected table.
| Row | A: Received code | B: Reference code | Expected =EXACT(Arow;Brow) |
Why |
|---|---|---|---|---|
| 2 | Calligra |
Calligra |
TRUE | Every character matches. |
| 3 | Calligra |
calligra |
FALSE | Capital C differs from lowercase c. |
| 4 | ABC |
ABC |
FALSE | B4 has one trailing space. |
| 5 | A B |
A B |
FALSE | B5 has two spaces between letters. |
| 6 | part-01 |
part-01 |
TRUE | The hyphen and digits match. |
| 7 | x9 |
x8 |
FALSE | Last digit differs. |
| 8 | MIX |
MIX |
TRUE | Identical all-caps text. |
Tip for the space-sensitive rows: In B4 type ABC followed by exactly one space. In B5 type A, two spaces and B. If the editor trims spaces during entry, use a formula such as ="ABC"&" " in B4 and ="A"&" "&"B" in B5 to create them explicitly.
The following literal checks can be entered into unused cells independently of the table:
=EXACT("KDE";"KDE") → TRUE
=EXACT("KDE";"kde") → FALSE
=EXACT("A B";"A B") → FALSE
=EXACT("";"") → TRUE
=EXACT("same-123";"same-123") → TRUE
=EXACT("ABC";"ABC ") → FALSE
The arrows and expected values are explanatory annotations, not spreadsheet syntax. Enter only the formula to the left of the arrow. The expected results were independently checked by literal string equality for these examples; there has been no native execution.
Advanced use: make a clear pass/fail column
If a supplier provides a case-sensitive part identifier in A2 and the approved identifier is in B2, place this formula in D2:
=IF(EXACT(A2;B2);"Approved match";"Check identifier")
For row 2 above, the expected result is Approved match. For row 3, it is Check identifier. The formula is a simple boolean decision and must not be mistaken for a security check: a user can still change either source cell, and approval rules must be controlled outside a spreadsheet when they are consequential.
Distinguish spaces from capitalization: If A4 contains "ABC" and B4 contains "ABC ", a length comparison offers a clue:
=LEN(B4)-LEN(A4)
The expected result is 1. Compare text lengths first, then assess leading/trailing spaces. Do not automatically apply TRIM to legal identifiers, catalog codes or product strings where spaces are meaningful.
Compare exact and non-exact operations
=EXACT("Alpha";"alpha") is expected to be FALSE. If you intentionally need a case-insensitive rule for standardized ASCII data, both inputs could be transformed with LOWER before comparison, e.g. =EXACT(LOWER(A3);LOWER(B3)). That changes the meaning of the check and may be inappropriate for data where case matters. Behavior of locale-sensitive case conversion (for instance Turkish dotted/dotless I) was not tested.
Errors, limits and troubleshooting
- Unexpected FALSE when the text looks the same: Inspect case, trailing spaces, line breaks, nonbreaking spaces and Unicode confusables. Two displayed glyphs need not be the same stored character.
- Unexpected TRUE after cleaning or conversion: Make sure you are comparing the original cells, not a pair of normalized helper cells that removed the differences you intended to detect.
- Numeric cells or dates: The source coerces values to text before comparing. Exact results from numbers, currency-formatted cells, dates and booleans depend on conversion conventions; do not generalize these text-only examples to such cells without testing your locale.
- Wrong separators: The English handbook uses semicolons. Copied Excel formulas with commas may need editing in Calligra.
- Unexpected error: Confirm both required parameters are present and the cell references are valid. No universal native error behavior for every invalid input is claimed.
- TRUE/FALSE shown as other text: Verify output cell type and display formatting. EXACT returns a Boolean according to the official reference.
- Huge datasets: Repeated exact checks can add calculation overhead; the KDE handbook does not provide a universal size/performance threshold.
Excel and LibreOffice compatibility
Excel documents EXACT(text1,text2) as case-sensitive, and it ignores formatting differences, which is distinct from ignoring whitespace in the actual text. LibreOffice Calc provides an EXACT text comparison too, but Unicode and mixed-type behavior deserve independent testing; no blanket equivalence is asserted for every Unicode string or mixed-type value. The basic conceptual use—asking whether two strings match—is portable, while separator conventions, collation, normalization and coercion can differ.
Avoid replacing EXACT with ordinary spreadsheet = comparisons when case differences matter: exact text equality is the intent of this function, whereas comparison operators and other functions may apply different text-comparison rules.
Related topics and verified references
The official KDE handbook links to COMPARE for a comparison with explicit case-sensitivity setting, LEN to count string characters, CLEAN to remove non-printing characters and LOWER for case conversion. These links lead to the official KDE documentation.
Primary and compatibility evidence (accessed 2026-10-11)
- KDE official EXACT entry: two text arguments, Boolean result, examples.
- Pinned source registry in
text.cpp: registration and arity, no alternate alias. - Pinned
func_exactimplementation: direct string equality after conversion. - KDE Gear 26.08.2 announcement: release identification.
- Microsoft Excel EXACT documentation: case-sensitive intent and formatting distinction.
- LibreOffice Calc text-function index: compatibility reference, not direct native Calligra evidence.
Validation statement: Official Calligra XML/help and pinned implementation checked, literal test pairs independently checked. Calligra application executions: 0.