As KArthik said, we can have only one characteristics as an exception. In your case, add additional KFs in your data target.
If characteristic ' billing type' = A, exception aggregation of KF1, KF2, KF3 will use reference characteristic C1 -- use standard exception aggregation functionality
If characteristic ' billing type' = B, exception aggregation of KF1, KF2, KF3 will use reference characteristic C2 --- create KF4, KF5, and KF6 and update only id billing type = B.(with exception aggregation on C2).
Rgds..
Shambhu