I have two tables, item_data and sheet. Both have an index column set to Text format, containing values like “1.1”, “1.2”, “1.10”, “1.3.1”.
When I try to reference a row in sheet using a filter: item_data.Filter(index = thisRow.index)
Coda incorrectly matches both “1.1” and “1.10”. It seems to be forcing a numeric comparison despite the column type being Text.
What I tried:
Expected behavior: “1.1” should not match “1.10” when doing a text comparison.
Is there a way to enforce strict string equality in filters?
2 Likes
Can you share a dummy doc with us to analyze and replicate the issue?
1 Like
Here is the page replicating the issue.
1 Like
@Lim_Changjun Please follow these steps to make the doc public:
Guide: How to share your doc with the Coda Community
Credits for the guide: @Jannis
2 Likes
You are correct in noticing that Coda tries to “guess” at the column format (even in formulas), regardless of what you specified.
There is a trick to solve your problem:
SourceTable.Filter(Index.Rightpad(20,“|”)=thisRow.Index.RightPad(20,“|”))
where “20” is the largest possible string (if you really want to make sure, use 50 or any other large number) and “|” is any random character that is not used in your indexing sequence.
It’s not the prettiest of workarounds, but it works and sometimes that’s all that matters
.
2 Likes
Oh, I missed.
I have shared the docs properly.
1 Like