Uma fórmula que se move para a direita quando é arrastada para baixo

1

Eu tenho uma fórmula SUM da seguinte forma:

=SUM(Monday!B5+Tuesday!B5+Wednesday!B5+Thursday!B5+Friday!B5+Saturday!B5+Sunday!B5)

É possível fazer com que, quando essa fórmula for copiada, a fórmula se torne:

=SUM(Monday!C5+Tuesday!C5+Wednesday!C5+Thursday!C5+Friday!C5+Saturday!C5+Sunday!C5)

e assim por diante?

    
por Clayton Clark 21.12.2017 / 02:11

2 respostas

0

Você perguntou como copiar a fórmula A1 para baixo , mas forçá-la a mudar para B1 em vez da A2 padrão esperada. De alguma forma, precisamos pedir ao excel para descer, mas contar de lado; ou seja, passar da linha 1 para a linha 2; mas conte as colunas de A para B.

Eu suponho que apenas as referências da coluna vão mudar, os nomes de folhas (dias) vão ficar mesmo. & sua célula inicial é A1.

Várias maneiras de fazer isso. Pode-se estar usando os códigos char, ou seja, converter números em alfabetos. =code("A") é 65 & assim por diante.

=CHAR(65+ROW()-1)&1 será traduzido como:

=CHAR(65+ROW()-1)&1
=CHAR(65+1-1)&1
=CHAR(66-1)&1
=CHAR(65)&1
=CHAR(65)&1
="A"&1
=A1

Supondo que você esteja em A1, B5 também pode ser escrito como = CHAR (65 + ROW () + 1-1) e 5

Note que suponho que você esteja começando na coluna A; -1 indica a Coluna A; então se você começar de B, use -2. 65 é o código de A.

Use esta fórmula na sua primeira célula / inicial, substituindo cada B5 por =CHAR(65+COLUMN()+1-1)&5 .

ROW() bit aumentará conforme você desce; mas CHAR bit irá traduzi-lo para os identificadores de coluna, ou seja, A,B,C... Além disso, as partes fixas, ou seja, as cadeias de caracteres na fórmula precisam ser colocadas entre aspas.

=SUM(
  Monday!B5+
  Tuesday!B5+
  Wednesday!B5+
  Thursday!B5+
  Friday!B5+
  Saturday!B5+
  Sunday!B5
 )

torna-se ( B é substituído por &CHAR(65+ROW())& )

=SUM(
  "Monday!"&CHAR(65+ROW())&5+
  "Tuesday!"&CHAR(65+ROW())&5+
  "Wednesday!"&CHAR(65+ROW())&5+
  "Thursday!"&CHAR(65+ROW())&5+
  "Friday!"&CHAR(65+ROW())&5+
  "Saturday!"&CHAR(65+ROW())&5+
  "Sunday!"&CHAR(65+ROW())&5
 )

Mas isso apenas fornecerá a uma string um erro de #value, porque ele tentará adicionar a palavra Monday & B5 Precisamos colocar cada linha em INDIRECT ().

Fórmula final

=SUM(
  INDIRECT("Monday!"&CHAR(65+ROW())&5)+
  INDIRECT("Tuesday!"&CHAR(65+ROW())&5)+
  INDIRECT("Wednesday!"&CHAR(65+ROW())&5)+
  INDIRECT("Thursday!"&CHAR(65+ROW())&5)+
  INDIRECT("Friday!"&CHAR(65+ROW())&5)+
  INDIRECT("Saturday!"&CHAR(65+ROW())&5)+
  INDIRECT("Sunday!"&CHAR(65+ROW())&5)
 )

Deixe-me saber de todas as perguntas.

Note que este pode não ser o método mais rápido / mais curto. O Excel, como qualquer outro software, tem várias maneiras de fazer a mesma coisa.

    
por 21.12.2017 / 14:05
-1

Eu gostaria de sugerir a você que a Fórmula irá ajudá-lo a somar a próxima coluna em vez da linha enquanto você a puxa para baixo.

Verifique a captura de tela abaixo.

Agora, deixe-me explicar o cenário primeiro.

A faixa de dados que usei é M1: N8 e Sheets are 8 & 9.

NB: as fórmulas são escritas em Sheet8.

A célula M9 (cor vermelha) tem fórmula,

= SUM (Folha8! M1 + Folha9! M1).

A célula M11 (cor azul) tem valor 48 e a fórmula é

=SUM(SUBTOTAL(9,OFFSET($M$1,{0,1,2,3,4,5,6,7},ROWS(M$11:M11)-1,{1},1)))

NB: Esta fórmula está adicionando dados de M1: M8, se você quiser somar um intervalo de células.

Quando você arraste essa fórmula para baixo, receberá a soma da coluna N.

Agora, finalmente, a célula M14 (cor verde) tem valor 40 e a fórmula é

=SUM(SUBTOTAL(9,OFFSET(Sheet8!$M$1,{0},ROWS(M$14:M14)-1,{1},1))+SUM(SUBTOTAL(9,OFFSET(Sheet9!$M$1,{0},ROWS(M$14:M14)-1,{1},1))))

NB: Esta fórmula está conseguindo a SUM de M1 de Sheet8 e Sheet9 .          Quando você DRAG ele para baixo, escolha os valores de Cell N1 de ambas as folhas .

Espero que isso ajude você. Eu postei a solução depois que ela foi testada por mim.

    
por 22.12.2017 / 09:09