O seguinte cenário de exemplo:
Tenho a coluna A
com
RowIndex: 4
ColumnIndex: 7
Quero deslocar a coluna A
11 lugares para a esquerda para que meus índices de coluna resultantes ( B
) sejam
RowIndex: 2
ColumnIndex: 6
Para piorar a situação, a tabela é uma subtabela e, portanto, não começa no índice 0, 0, mas algo como 4, 2, como neste exemplo é possível
Tenho quase certeza de que isso pode ser resolvido por meio de cálculo de módulo, mas meu cérebro se recusa a me dar a fórmula correta.
Comecei em c# até agora com essa codificação, mas isso não parece estar certo, obviamente ( https://dotnetfiddle.net/5iEqgD ):
public static void Main()
{
int minColumnIndex = 4;
int maxColumnIndex = 8;
int minRowIndex = 2;
int maxRowIndex = 5;
int cellARowIndex = 4;
int cellAColumnIndex = 7;
int shiftCellToTheLeft = 11;
int cellBColumnIndex = cellAColumnIndex - ((maxColumnIndex - minColumnIndex + 1) % shiftCellToTheLeft);
int cellBRowIndex = cellARowIndex - ((maxColumnIndex - maxColumnIndex + 1) % shiftCellToTheLeft);
Console.WriteLine("cellBColumnIndex: " + cellBColumnIndex);
Console.WriteLine("cellBRowIndex: " + cellBRowIndex);
// Result:
// cellBColumnIndex: 2
// cellBRowIndex: 3
}
O que estou fazendo errado aqui?