Есть ли в MS Excel 2010 опция, которая будет отображать непечатаемые символы внутри ячейки (например, пробелы или символ перевода строки, введенный нажатием Alt-Enter)?
Есть ли в MS Excel 2010 опция, которая будет отображать непечатаемые символы внутри ячейки (например, пробелы или символ перевода строки, введенный нажатием Alt-Enter)?
Ответы:
Хотя вы не можете отображать специальные символы непосредственно в ячейке, вы можете использовать формулу в соседнем (вставленном) столбце, чтобы заменить вводы и пробелы на символы по вашему выбору!
Например
= ПОДСТАВИТЬ (А1;» ";" ¶ «)заменит любой перевод строки символом слова для перевода строки. И вложенная формула
= ПОДСТАВИТЬ (ПОДСТАВИТЬ (А1;» ";" ¶ ");" ";" _ ")заменит оба, пробел и введите. (Примечание: чтобы ввести «Ввод» в формулу, нужно нажать
Alt+Enter
во время редактирования формулы.
Самый простой способ сделать это - просто изменить шрифт на шрифт, который имеет встроенный видимый глиф для пробела (или любой другой символ, который вам может понадобиться идентифицировать)
К сожалению, у меня нет хорошего примера такого шрифта, чтобы предоставить вам, но очень легко добавить маленькую точку к существующему шрифту, используя любое программное обеспечение редактора шрифтов. Только не забудьте переименовать шрифт (не файл шрифта, а имя шрифта внутри файла шрифта), чтобы можно было легко отличить этот пользовательский шрифт от исходного, если вы оба установили.
РЕДАКТИРОВАТЬ Я наконец нашел время, чтобы сделать такой шрифт! Вот DottedSpace Mono, основанный на Bitstream Vera Sans Mono, но со встроенными точечными пробелами:
CTRL + H заменяет все пробелы символом ~. Это быстро поможет пробелам без программирования, а в обратном порядке просто замените ~ на "".
Лучшая программа, которую я нашел для сравнения файлов такого типа, где текст не отображается, - Ultra Edit. Пришлось использовать его для сравнения файлов EDI, файлов интерфейса, технических загрузок и т. Д. MS Office просто недостаточно приспособлен для этой задачи.
Alt-Enter
)
1 Используйте поиск и введите пробел
2 Замените все и введите «[пробел]»
3 Необязательно: Если вы также хотите выделить всю ячейку красным, просто используйте селектор формата рядом с этим
Результат: эти надоедливые пространства проявят себя очень четко
Зачем мне это нужно: я использовал функцию COUNTA, чтобы найти непустые ячейки в столбце. Однако он возвращал число больше, чем я ожидал. Я отлаживал каждую ячейку одну за другой, и, к моему изумлению, некоторые явно пустые ячейки показывали COUNTA = 0, а другие - COUNTA = 1, что не имеет смысла. Я не мог видеть разницу между ними. Оказывается, в этой функции остается только один оставшийся пробел, но он НИГДЕ не виден ни в ячейке, ни в поле ввода вверху.
Вывод: если вы полагаетесь на COUNTA для выполнения важных задач, вам лучше убедиться, что он не учитывает те неприятные места, о которых вы, возможно, не знаете.
Я обычно не нуждаюсь в VBA, поэтому я предпочитаю делать вещи Excel в 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")
в клетке рядом с клеткой рядом с ней, или вы можете использовать условное форматирование с использованием полукокса () (или Chr в VBA) обозначений для поиска провозных возвращается (полукокс (13)) или любого другого символа, здесь есть ссылка на номера символов