# JavaScript (ES6), 45 bytes

Takes input in currying syntax (n)(x).

n=>g=x=>x?[...g(x-1),n/x&1&&n%x+x*~-x/2+1]:[]


Try it online!

### How?

We use a direct formula to get the value of the cell at column n (0-indexed) and row x (1-indexed):

n / x & 1 &&     // is this cell zero or non-zero?
n % x +          // column modulo row --> increment for a non-zero value at this position
x * ~-x / 2 + 1  // minimum value of non-zero values for this row:
// ∑(i=1...x-1)(i) + 1 = x(x - 1) / 2 + 1


# JavaScript (ES6), 45 bytes

Takes input in currying syntax (n)(x).

n=>g=x=>x?[...g(x-1),n/x&1&&n%x+x*~-x/2+1]:[]


Try it online!

# JavaScript (ES6), 45 bytes

Takes input in currying syntax (n)(x).

n=>g=x=>x?[...g(x-1),n/x&1&&n%x+x*~-x/2+1]:[]


Try it online!

### How?

We use a direct formula to get the value of the cell at column n (0-indexed) and row x (1-indexed):

n / x & 1 &&     // is this cell zero or non-zero?
n % x +          // column modulo row --> increment for a non-zero value at this position
x * ~-x / 2 + 1  // minimum value of non-zero values for this row:
// ∑(i=1...x-1)(i) + 1 = x(x - 1) / 2 + 1

1

# JavaScript (ES6), 45 bytes

Takes input in currying syntax (n)(x).

n=>g=x=>x?[...g(x-1),n/x&1&&n%x+x*~-x/2+1]:[]


Try it online!