Coda Bug: Filter Treats Text Strings "1.1" and "1.10" as Identical Even After Using ToText()

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:

  • Converting both sides using ToText() inside the filter: CurrentValue.index.ToText() = thisRow.index.ToText().

  • The issue persists.

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 :slight_smile:.

2 Likes

Oh, I missed.

I have shared the docs properly.

1 Like