SE fórmula com múltiplas variações

0

Eu construí um sistema para gerenciar as reservas do nosso hotel. Sou um usuário autodidata do Excel e sei apenas o que descobri nos últimos meses explorando a Internet.

Eu encontrei um problema. Cada dia do ano tem a sua própria lista de 24 quartos com informações como número da sala, nome do hóspede, número do passaporte, pago, nacionalidade, etc. Quero dar a cada uma dessas 365 áreas o seu próprio número em relação ao dia da o ano, por exemplo 1º de janeiro = 1

Esperava poder usar essa planilha principal para preencher automaticamente uma lista de convidados diários usando uma fórmula if = if (cellref = 1 .... e ela preencheria meu formulário diário com todas as informações Eu exigi, como nomes, números de passaporte, pagos y / n etc.

Na minha cabeça, estou prevendo uma enorme confusão de uma fórmula que deve levar em conta as 365 possibilidades da planilha / planilha original.

Como posso preencher o formulário diário com as informações da planilha anual usando uma fórmula? Existe uma maneira simples ou eu vou estar digitando fórmulas de comprimento de ensaio em cada cel da minha forma diária?

Qualquer ajuda apreciada, vou quebrá-la, só preciso de orientação.

    
por Qawana 26.01.2013 / 18:13

1 resposta

0

Vou fazer algumas suposições aqui, mas acho que sei em que você está chegando. Presumivelmente, você tem uma planilha que tem uma "lista de convidados diários" formatada e outra planilha da qual você está extraindo os dados (já que as planilhas do 365 provavelmente são um pouco incontroláveis). Sem ver o formato, presumo que na sua planilha mestre a coluna A tem o dia do ano (1 - 365) e a coluna B tem o número da sala (1 - 24). Além disso, suponho que você tenha isso classificado pela Coluna A, de modo que todas as salas do mesmo dia sejam contíguas (isso é importante para o meu exemplo, mas você pode contorná-lo com uma lógica mais complicada).

Na sua planilha de lista de convidados diários, coloque o número do dia no qual deseja executá-lo em uma célula (A1 no meu exemplo).

B1:

=MATCH(A1,Sheet1!A:A)

Se a linha 2 contiver rótulos, iniciaremos a linha três com seus dados extraídos:

=INDIRECT(ADDRESS(ROW()-3+$B$1,COLUMN()+1,4,1,"Sheet1"))

Você pode copiar essa fórmula entre colunas e 24 linhas para obter os dados da sua lista principal. =indirect() pega uma célula com base em uma string de texto. address() cria uma string referindo-se a uma célula com base no número da linha, no número da coluna, em algumas opções de formatação e no nome da planilha.

Especifiquei o número da linha obtendo a linha da célula da fórmula com =row() , subtraindo três, pois suponho que as duas primeiras linhas sejam rótulos e semelhantes e, em seguida, adicione o número da linha da primeira linha que possui o dia correto (inserido em A1 e encontrado por meio da fórmula =match() ).

Desloquei a coluna para 1, pois imagino que você não precisa do identificador de data repetido nessa lista de convidados diários.

As duas variáveis de formatação não alteram como essa função funciona quando emparelhada com a função =indirect() . A variável final é o nome da planilha inserido como uma string. Você poderia colocar o nome da planilha em uma célula e referenciá-la se tiver que extrair várias planilhas. Nos exemplos acima, você terá que substituir "Sheet1" por qualquer nome de folha escolhido para os dados.

Espero que isso seja instrutivo o suficiente para você usar isso daqui. Há muitas maneiras de fazer isso funcionar (você não precisa do B1, por exemplo, mas achei que ficou mais claro).

Por fim, recomendo usar datas em vez de apenas um número inteiro. Isso deixará as coisas bem claras e você poderá até fazer coisas convenientes, como usar =today() para a data de hoje.

    
por 28.01.2013 / 19:43