EM RESUMIDO
Alguém pode explicar por que estou vendo símbolos "@" aparecendo, onde não estavam antes, em muitas fórmulas em muitas das minhas planilhas do Excel?
Eles não são @menções, ou parte de referência estruturada ou uso de fórmulas de tabela, nem qualquer um dos outros suspeitos usuais.
TL;DR DETALHES
(NOTA: As informações do sistema estão no final deste post)
Como eu disse, não são @menções e não estou usando referências estruturadas. Além disso, eu não sou e nunca fui um usuário do Lotus, então não coloco símbolos @ em fórmulas da maneira que esses caras às vezes parecem estar programados para fazer. Na verdade, não consigo pensar em nenhuma vez em que usei @ em uma fórmula que não seja como parte do código de formato ocasional para TEST () e não é isso que está acontecendo aqui também.
Exemplo
Aqui está um exemplo (pegado aleatoriamente). Este:
=IFS(DX$33="","",ISNUMBER(CORRESP(DX$33,$AJ$33:$DR$33,0)),PROCH(DX$33,$AJ$33:$DR$1033,ROWS(DX$33:DX36 )+1,0), VERDADEIRO,0)
agora está assim:
=@IFS(DX$33="","",ISNUMBER(CORRESP(DX$33,$AJ$33:$DR$33,0)),PROCH(DX$33,$AJ$33:$DR$1033,@ROWS(DX$33 :DX36)+1,0),VERDADEIRO,0)
Como eu disse, isso é apenas um exemplo aleatório. Existem muitos mais, muitos dos quais não têm nada tão "exótico" quanto IFS (), então não acho que seja essa a causa.
Apenas um efeito de exibição?
Agora, acima, digo "parece" porque acho que é possível que os misteriosos @ não estejam realmente no próprio arquivo e estejam apenas sendo exibidos pelo Excel. Digo isso porque tenho pelo menos um arquivo onde posso ver em seu histórico de versões do DropBox que existe apenas uma única versão - minha (@-free) original. Portanto, começou sem símbolos @ e não mudou (de acordo com a versão do DropBox), mas agora posso ver os símbolos @. Uma explicação é que foi o Excel que mudou, não meu arquivo e, portanto, a alteração é apenas um artefato de exibição. Ah, e remover o @ parece não ter efeito nas fórmulas.
@ é uma coisa real
Por outro lado, para os sorrisos, tentei criar uma nova fórmula:
=@A1
Quando tentei inserir isso, o Excel me avisou que "Esta fórmula não é suportada por algumas versões mais antigas do Excel" e sugeriu que eu a substituísse pela seguinte variação:
=A1
Portanto, esse uso de @ parece ser uma coisa real e que nem sempre existiu. (O que obviamente se aplica ao seu uso em conjunto com [] na referência de linha, mas não é isso (é!?))
De qualquer forma, em resposta ao Excel me perguntando se eu queria deixá-lo remover o @, joguei o cuidado ao vento, cliquei em "Cuide da sua vida!" (também conhecido como "Não"). O Excel obrigado inserindo minha versão @-ified original e, pelo que posso ver, está tudo bem e se comporta exatamente como a versão @-free que o Excel tentou me convencer a usar.
Então?
Alguém pode explicar tudo isso? Talvez tenha havido uma atualização recente do Excel que introduziu uma nova parte da sintaxe @? E por recente, quero dizer nos últimos 2-3 meses no máximo. Tenho arquivos que criei em meados de dezembro que sei que eram @-free naquela época e que agora se tornaram @-ified. Mas, se sim, por que o Excel está apenas vagando por aí alterando arquivos sem me perguntar, especialmente devido ao fato de que, por sua própria admissão, isso pode criar problemas de compatibilidade com versões anteriores? E como é que eu tenho um arquivo do Excel que, por ter apenas uma versão, eu sei que está INALTERADO, mas em virtude da chegada desses símbolos @ parece ter sido ALTERADO?
Estou procurando pistas há mais de uma hora, mas não consigo encontrar nada definitivo. Uma dificuldade é que "@" é um caractere tão amplamente usado que muito do que o Google está lançando é bobagem irrelevante.
Informação do sistema
- Excel para Mac, versão 16.34 (20020900), parte do Office 365
- Mac OS Catalina 10.5.3
THX.
Parabéns, você acabou de adquirir as novas Fórmulas Dinâmicas. O
@
diz à fórmula de matriz dinâmica para retornar apenas um valor, basicamente agindo como as antigas versões de matriz da fórmula.A nova Dynamic Array Formula deseja
SPILL
os valores automaticamente.Por exemplo, coloque valores aleatórios em
A1:A15
então em B1 coloque:
Entrou normalmente. O Excel irá "derramar" os valores para baixo.
Agora adicione o
@
à frente da fórmula emB1
. A fórmula não vai mais derramar.Mas, assim como no estilo antigo, pode-se selecionar
B1:B15
e pressionar Ctrl-Shift-Enter em vez de Enter com a@
fórmula e ela preencherá o intervalo como antes.Quanto à mudança automática, bem, não funcionaria sem ela com as novas funções.
Mas olhe para as novas funções de matriz dinâmica, elas tornarão muitas coisas muito mais fáceis. Mas com qualquer coisa nova, a compatibilidade com versões anteriores deve ser pensada ao compartilhar.
Por que derramaria os valores quando a fórmula (especificamente minha fórmula) está referenciando sua própria linha e nenhuma outra? Além disso, ele só faz isso se eu tentar converter a fórmula para INDIRETO():
Antes: =SEERRO("[WORKBOOK.xlsm]"&LEFT(MID(@CELL("filename",A1),FIND("]",@CELL("filename",A1))+1.255),FIND(", ",MID(@CELL("filename",A1),FIND("]",@CELL("filename",A1))+1,255),1)-1),"Sem vírgula no nome.");
...que funciona bem
Depois: =@INDIRECT(SEERRO("[WORKBOOK.xlsm]"&LEFT(MID(@CELL("filename",A1),FIND("]",@CELL("filename",A1))+1.255),FIND ("",",MID(@CELL("filename",A1),FIND("]",@CELL("filename",A1))+1.255),1)-1),"Sem vírgula no nome." ))
...que não funciona, mas retorna um #REF! erro