@nathanaelb @Jeff_Hager @Federico_Fleitas
Thank you for trying to help.
Here is the full configuration.
I am trying to understand why the same ranking logic works correctly in most tables, but gives incorrect results in a few specific columns.
**
Screenshot 1: General Overview**
This screenshot shows the final output columns side by side:
- Ranking | QS World (Major)
- Ranking | QS World (General)
- If | QS World
- QS Final
The intended logic is:
- If the major-specific QS ranking exists, use Ranking | QS World (Major).
- If the major-specific ranking is empty, use Ranking | QS World (General).
- Then classify the selected rank into Top 10, Top 50, Top 100, Top 150, etc.
In the screenshot, rows with General QS ranking 42 are correctly classified as Top 50. However, rows with rank 82 are incorrectly classified as Top 10, even though 82 should be Top 100.
Screenshot 2: Ranking | QS World (Major)
This column is a Number column.
It contains the major-specific QS subject ranking when available.
When this column is empty, the system should fall back to the general QS ranking.
Screenshot 3: Ranking | QS World (General)
This column is a Lookup column.
It pulls the general QS ranking from a related table.
The source column being looked up is numerical.
This same source table and numeric ranking structure are also used by other ranking categories/tables that work correctly.
Screenshot 4: If | QS World
This is an If → Then → Else column.
The logic is:
IF Ranking | QS World (Major) is not empty
THEN Ranking | QS World (Major)
ELSE Ranking | QS World (General)
So this column is only meant to choose the major ranking first when it exists, and otherwise use the general ranking.
Example:
- If Major rank exists: use Major rank.
- If Major rank is empty: use General rank.
The output appears numeric in the table. For example, it returns 42 and 82 correctly.
Screenshot 5: QS Final
This is another If → Then → Else column.
It reads from If | QS World and categorizes the rank:
IF If | QS World <= 10 → Top 10
IF If | QS World <= 50 → Top 50
IF If | QS World <= 100 → Top 100
IF If | QS World <= 150 → Top 150
IF If | QS World <= 200 → Top 200
and so on.
The expected behavior:
- 42 should return Top 50.
- 82 should return Top 100.
- 155 should return Top 200.
- 278 should return Top 300 or Top 500 depending on the category setup.
The problem:
Some values are being classified incorrectly. For example, rank 82 is returning Top 10, even though it is not <= 10. This suggests that the issue may not be with the visible logic itself, because the same structure works correctly in other tables/categories.
Source table screenshot:
The source table contains numeric ranking columns, including:
- Ranking | QS
- Ranking | THE
- Ranking | Shanghai
- Ranking | US News
These are number columns, and Ranking | QS World (General) is looking up its value from this numeric source table.
**
What I need help understanding:**
Why would Glide classify 82 as Top 10 when the condition is If | QS World <= 10?
All relevant source columns are numerical, and the lookup source is also numerical. The same logic works correctly in several other tables and ranking categories. The issue only appears in some specific columns, which makes it look like either:
1. Glide is treating the lookup/If output differently from a normal number in this specific table,
2. the If → Then → Else column is evaluating the wrong condition order internally,
3. there may be a cached/glitched computed column,
4. or the lookup result is visually numeric but not being evaluated as a clean number.
The mistake needing a solution:
The QS Final column is assigning the wrong category to some numeric values. Specifically, values like 82 are being returned as Top 10 instead of Top 100. I need to know whether this is caused by the Lookup column, the intermediate If | QS World column, the final If → Then → Else logic, or a Glide computation/cache issue.