Existe uma opção no MS Excel 2010 que exibirá caracteres não imprimíveis em uma célula (por exemplo, espaços ou o caractere de quebra de linha introduzido ao pressionar Alt-Enter)?
Existe uma opção no MS Excel 2010 que exibirá caracteres não imprimíveis em uma célula (por exemplo, espaços ou o caractere de quebra de linha introduzido ao pressionar Alt-Enter)?
Respostas:
Embora não seja possível mostrar caracteres especiais diretamente na célula, você pode usar uma fórmula na coluna adjacente (inserida) para substituir Entradas e Espaços por caracteres de sua escolha!
Por exemplo
= SUBSTITUTO (A1; " ";" ¶ ")substituiria qualquer quebra de linha pelo símbolo da palavra para a quebra de linha. E a fórmula aninhada
= SUBSTITUTO (SUBSTITUTO (A1; " ";" ¶ ");" ";" _ ")substituirá ambos, space e enter. (Nota: para inserir um "Enter" na fórmula, você precisa pressionar
Alt+Enter
enquanto edita a fórmula.
A maneira mais fácil de fazer isso é simplesmente alterar a fonte para uma fonte que tenha um glifo visível incorporado para o espaço (ou qualquer outro caractere que você precise identificar)
Infelizmente, não tenho nenhum bom exemplo dessa fonte para fornecer a você, mas é muito fácil adicionar um pequeno ponto a uma fonte existente, usando qualquer software de edição de fontes. Apenas não se esqueça de renomear a fonte (não o arquivo de fonte, mas a fonte NAME dentro do arquivo de fonte), para que seja fácil distinguir essa fonte personalizada da fonte original, se os dois estiverem instalados.
EDIT Finalmente encontrei tempo para criar uma fonte assim! Aí vem o DottedSpace Mono, baseado no Bitstream Vera Sans Mono, mas com espaços pontilhados incorporados:
CTRL + H substitui todos os espaços com um ~ Isso ajudará rapidamente em espaços sem programação e, para reverter, basta substituir ~ por "".
O melhor programa que encontrei para comparar esses tipos de arquivos em que o texto não está sendo exibido é o Ultra Edit. Teve que usá-lo para comparar arquivos EDI, arquivos de interface, uploads técnicos etc. O MS Office simplesmente não está bem equipado para a tarefa.
Alt-Enter
)
1 Uso encontrar e inserir espaço
faça 2 Substitua tudo e digite "[espaço]"
3 Opcional: Se você também deseja destacar a célula inteira também em vermelho, basta usar o seletor de formato ao lado
Resultado: esses espaços incômodos se revelarão super claramente
Por que eu precisei fazer isso: Usei a função COUNTA para encontrar células não vazias em uma coluna. No entanto, estava retornando um número maior do que eu esperava. Eu depurei cada célula uma por uma e, para minha surpresa, algumas células aparentemente em branco mostraram COUNTA = 0 e outras mostraram COUNTA = 1, o que não faz sentido. Eu não conseguia ver o diferente entre os dois. Acontece que um único resto em branco conta nessa função, mas não é visível em QUALQUER LUGAR na célula ou na caixa de entrada na parte superior.
Conclusão: Se você está contando com o COUNTA para tarefas importantes, é melhor ter certeza de que ele não conta os espaços problemáticos que talvez você não saiba que existem.
Normalmente não preciso de VBA, então prefiro fazer coisas de excel em python + openpyxl
from docx import Document #word docx py library
import openpyxl #excel py library
from openpyxl.styles import Color, PatternFill, Font, Border
from openpyxl.styles import colors
from openpyxl.cell import Cell
import re #regular expressions
import os #work with system
wb = openpyxl.load_workbook('test.xlsx') #open needed document
redFill = PatternFill(start_color='FFFF0000',
end_color='FFFF0000',
fill_type='solid') #function to fill bad cells red
n = 0
print (wb.sheetnames) #print all sheetnames to ensure theres no hidden
for sheet in wb.worksheets: #cycle through sheets in excel file
# get max row count
max_row=sheet.max_row
# get max column count
max_column=sheet.max_column
for i in range(1,max_row+1):
# iterate over all columns
for j in range(1,max_column+1): #cycle through all rows and columns
# get particular cell value
cell_obj=sheet.cell(row=i,column=j)
s = re.search('[^-*+()!№;%:?@#$%^&;:_=/\\a-zA-Z0-9\ а-яА-Я°\'\".,,.«»<>ёЁ]', str(cell_obj.value)) #find bad symbols with regular expression
#^ find not normal characters
#s = re.search('[\n]', str(cell_obj.value)) find line end
if s:
print(n, " ", i, " ", j) #sheet, row, col
#print("^", s, "^") print bad symbol
#sheet.cell(row=i,column=j).fill = redFill
#color current cell wth spec chars red
print(n)
n+=1
wb.save("test.xlsx") #save redacted book
=IF(CLEAN(A1)=A1,"NA","Needs Cleaning")
na célula ao lado da célula ao lado ou usar a formatação condicional usando a notação char () (ou chr no VBA) para procurar retornos carraige (char (13)) ou qualquer outro caractere, aqui está um link para os números de caracteres