Inputfields are clearly the way to go for this kind of a simulation. If your adjustments apply to the whole category, than it means that you entered the adjusted value at the category level of detail, and not at the sku (s) level, or perhaps your formulas need to be verified for accuracy... Hard to say what's wrong with very little information...
Let me clarify a little bit.
If I have a hierarchy that looks like this:
I want to be able to select either Hardware, or just Servers, or just Server x, or any combination of selections and adjust the sales values associated with them.
Do I need to have a variable for every SKU? Or is there a way to store multiple keys into a variable (like an array) and use those keys to make the adjustments?
You need to load an Inputfield value associated with the lowerst level of detail that you care to differentiate. In your example, if you want to modify numbers for "server x", that that's the lowest level you need to differentiate, then keep the values at that level. QlikView will aggregate the data up to higher levels.
If you only associate your inputfileds to Categories, then every change in the inputfield value will apply to the whole category (what was your initial problem, if I understood you correctly)