1) Skip unnecessary iterations.
As Naveen.Sanagasetti said in a comment, skip as large portions of lists as possible
if you are able to tell beforehand that this portion won't fit your
if condition.
2) Don't ToString() to compare.
Your
if conditions compare the result of
ToString() with string literals. If possible, compare
QCode and
FactorDesc directly, without calling ToString(). Since there's no information about their types, I can't go into details on that. But if QCode is an integer (of whatever size) or enumeration, a comparison will be significantly faster than first converting it.
3) Suspend UI updates
Since you didn't specify a UI technology, I'll assume Windows Forms. Chances are that
AddCell() will refresh its table every time it is called. If that's often, it will get surprisingly time-consuming.
You can
suspend UI layout, perform all your loops, checks and additions and then
resume UI layout to get all UI changes to the screen in one go.
That's faster because each one of the small changes has to rework the complete UI around (or at least to the right or bottom of) it, whilst one big change has to do that only once.