Okay, after a bit more searching I've found a solution here:
The method suggested is to concatenate the values in a separate field, then compare the concatenated values. This is an old post, though, so if there's a better solution I'm interested to hear it.
In addition to the solution you found, you could consider requiring users to enter values for all 4 categories. I'm thinking they all likely have Product Categories and Manufacturers, but perhaps not Price Groups. If so, you can just use something generic (like "A") for the price group.
If my guess is right that it's just the 3rd category (Price Group) that they don't all have, you could also consider using 3 categories, eliminating Price Group. Then you could concatenate Price Group and Description for those that have a Price Group (e.g., A-Widget, A-Gadget, B-Thingamajig, etc.).
Ann Arbor, MI
As Gordon suggests, you could require or artificially create values for 'empties'.
And, yes... you could concatenate values...
I am wondering what is the purpose for this particular heirarchy? There are many ways to achieve what I think you are wanting and I think the heirachical methodology is a limiting one. WHat happens if you want to use the heirarchy starting with Manufacturer? you can't.
What say you had the fields to choose from or leave empty as required... and calculated a list as a field of the values selected for the LHS of the relationship.
Then... In the actual records, you create a list of the values from each of the fields as a autoenter calculation field for the RHS of the relationship.
This would allow you to find records where the collated values exist in the records lists field.
This would mean that you could eg just choose a Manufacturer to get all products by that manufacturer then you could select a price group to further filter.
Thanks for the suggestions.
Manufacturer here refers to other companies, so anything produced in-house doesn't have a manufacturer or a price group.
Also, requiring entries for all categories just opens the door to errors when someone inevitably forgets. I could write a script that inserts "N/A" into any field that can't be left empty, but if the solution could be invisible to the user, that would be the best way.
If I understand your suggestion correctly, you'd have 7 relationships:
3 Price Group
4 Category & Manufacturer
5 Category & Price Group
6 Manufacturer & Price Group
7 Category, Manufacturer & Price Group
Then filter by whichever relationship covered the selected options. Is that right?
I'll give that a go, anyway, and let you know how I get on.