Not sure I understood completely. Perhaps this:
convert[x_?MatrixQ, z : _Integer : 1] :=
Flatten[Table[Most[#], {Last[#]/z}] & /@ x, 1]
data1 = {{1, 2, 3}, {4, 5, 6}};
cd1 = convert[data1]
{{1, 2}, {1, 2}, {1, 2}, {4, 5}, {4, 5}, {4, 5}, {4, 5}, {4, 5}, {4, 5}}
data2 = {{1, 2, 4}, {4, 5, 6}};
cd2 = convert[data2, 2]
{{1, 2}, {1, 2}, {4, 5}, {4, 5}, {4, 5}}
Bob Hanlon