The review workflow around a Hebrew spreadsheet: why Hebrew headers and mixed cells break assumptions, three checks to run on every answer, and what to keep.
Key takeaways
- The risk with a Hebrew spreadsheet is not that the answer is visibly wrong. It is that the answer is correct for a small subset of the data and nobody notices.
- Two headers that look identical need not be identical: `מע"מ` written with a plain double quote and `מע״מ` written with the Hebrew gershayim character are different strings, and any match between them fails silently.
- Invisible characters are the second source of trouble: a right-to-left mark, a non-breaking space or a trailing space turns one city name into a value that does not equal itself.
- Every answer needs two numbers attached: how many rows entered the calculation and how many were left out. Without them there is no way to know the filter caught all the data.
- Excel's own limits matter to the check: a worksheet holds 1,048,576 rows by 16,384 columns, and a single cell is capped at 32,767 characters. Long Hebrew text in a cell is truncated quietly.
An answer about a spreadsheet is a claim to verify, not a result. On a Hebrew file, three checks come before you act on it: compare one total against a number you already know, confirm how many rows the calculation included, and re-run the same filter by hand on five rows. Three minutes, before the decision.
Why does a Hebrew spreadsheet break assumptions you did not know you had?
Every analysis rests on the assumption that values which look the same are the same. In Hebrew that assumption breaks more often than in English, and it is almost always because of characters nobody can see.
The sharpest example is gershayim. The string מע"מ is usually typed with the ordinary double quote, U+0022, but a Hebrew keyboard layout or a text-beautifying tool can produce the Hebrew gershayim character, U+05F4. The two strings are visually indistinguishable on screen, and comparing them returns false. The same is true of the single mark: U+0027 against the Hebrew geresh U+05F3.
The second family is invisible characters: the right-to-left mark U+200F, a non-breaking space U+00A0 that usually arrives from a browser paste, and a trailing space at the end of a city name. Each turns a value into a different value for the purposes of matching, sorting and grouping, and none of them is visible in the cell.
The result is not an error message. It is a total that looks reasonable and describes 812 rows out of 940.
What you check in every answer before acting on it
- A numeric anchor. Ask for one figure you already know, such as the sales total for a month you have closed. If it does not match, nothing else matters yet.
- A row count. Ask how many rows entered the calculation and how many were filtered out, and compare against the row count of the sheet. That gap is the single most important check on a Hebrew file.
- Five rows by hand. Take five rows that should meet the condition and five that should fail it, and check them against the result.
- Unique values in the key column. Ask for the distinct values of the column you grouped by. A city name appearing twice in two forms shows up here immediately.
- The inverse question. Ask about the same figure from another angle, an average and a row count instead of a sum, and check that the answers reconcile.
Before all of those, run a ten-second check: ask for the list of column names detected in the file and compare it against your own header row. On a Hebrew sheet that check catches more faults than any other, because a column whose header carries an invisible character, or that was read as empty, gives itself away here rather than at the point where somebody is already building a decision on it. If a single column name does not match, stop and fix the file before asking it anything else.
Hebrew traps and how you detect them
| The trap | How it looks in the cell | How you detect it |
|---|---|---|
| Hebrew gershayim against a plain double quote | Completely identical | Distinct-value count on the column, plus string length |
| Trailing space or non-breaking space | Completely identical | Compare the value's length to its length after trimming |
| A directional mark inside the value | Completely identical | Count characters in the value against the letters you see |
| A number stored as text | Aligned to the unexpected side | Check whether summing the column returns zero or a partial figure |
| A mixed Hebrew and Latin cell | Display order differs from stored order | Paste into a plain text editor and look at the result |
| Text truncated in the cell | Looks complete to the end | Compare its length against the 32,767-character cap |
That table is a work order rather than a catalogue. The first four rows cover most cases in Hebrew business spreadsheets, and they are also the ones that tend to survive a casual review unnoticed.
What the model cannot know about your file
- That there is a second worksheet holding the exceptions, if you attached only the first.
- That an active filter hid rows on the screen you exported from.
- That one column is filled by hand in some months and automatically in others.
- That "not relevant" in a particular column actually means zero rather than missing.
- That two rows which look like duplicates are deliberately two separate transactions.
- That the latest month is still partial, so every month-on-month comparison will show a decline.
Each of those produces an answer that is technically correct and commercially misleading. They are also why the first answer should always arrive with "how many rows were included" attached, not only with the final figure.
What to keep so the answer can be reconstructed
An answer with no record beside it is a memory. Store this alongside every analysis that feeds a decision:
- The file name and the version uploaded, including the date it was exported from the source system.
- The question as it was asked, in its exact wording.
- The number of rows included and the number filtered out.
- The numeric anchor that was compared, and the value it was compared against.
- Who checked it, and when.
Those five fields turn a future argument into a one-minute check. They are also what lets you repeat the analysis next month and know whether a difference came from the business or from the file.
When should you not upload the file at all?
When it contains details that identify people, the first question is not how accurate the answer will be. It is whether you may send that data to an external service at all. That depends on applicable law and on your own policy, and it is settled before the upload rather than after it.
The practical answer in most cases is minimisation: export only the columns the analysis genuinely needs. Sales by region does not need customer names, phone numbers or identity numbers. The wider considerations are in is it safe to upload business data to ChatGPT, the basic mechanics of analysing a file are in how to analyse Excel data with ChatGPT, and when a spreadsheet is still the better tool is in ChatGPT against Excel for data tasks.
Sources
Frequently asked questions
Why can a total that looks reasonable still be wrong?
Because a filter on a Hebrew value can catch only some of the rows, when some of them carry a different quote character or an invisible space. What you get is a genuine total of a subset. Comparing the included row count against the sheet's total row count is what exposes it, and it takes seconds.
How do you check whether a column holds two forms of the same value?
Ask for the distinct values in that column together with the number of occurrences of each. Two values that look identical and appear as separate entries are exactly this case. You can also ask for the string length of each distinct value, since a different length gives away an extra character.
Should you fix the file or the question?
The file, once. Cleaning at the source solves it for every later analysis, while rewording the question only works around it a single time. Cleaning the same values again every month is a sign the real problem sits at data entry in the source system.
What do you do with a file that is too large to analyse?
Reduce it before uploading: only the needed columns, only the relevant date range. It is also worth confirming the data really is on one sheet, because the limit of 1,048,576 rows by 16,384 columns per worksheet sometimes causes a quiet split across additional sheets.
Keep reading
Related service
Business Automation
I build custom automations that remove repetitive work end to end.
About the author
Yehonatan Saadia
Freelance automation, web & MVP developer
I'm Yehonatan Saadia, a senior developer who builds business automation, custom websites, and MVPs for small and mid-sized companies across the US, Europe, and Israel. These guides come from real client work, not theory.
Work with meHave a project like this?
Tell me what you're trying to automate or build. I reply within 24 business hours with a few targeted questions, then we walk through it on a free 30-minute call, with no commitment. You come away with a scope, a timeline and a fixed price - or a straight answer that it isn't worth building.
