これを行う最も簡単な方法は、単にフォントを、スペース (または識別する必要のある他の文字)
残念ながら、私はそのようなフォントの良い例を提供することができませんが、既存のフォントに小さなドットを追加することは、どのフォントエディタソフトウェアを使用しても、非常に簡単にできます。ただ、フォントの名前を変更することを忘れないでください(フォントファイルではなく、フォントファイル内のフォントNAME)。
EDIT やっとこんなフォントを作る時間ができました。Bitstream Vera Sans Mono をベースにした DottedSpace Mono ですが、ドットスペースが組み込まれています : http://github.com/tanusoft/DottedSpaceMono
CTRL+H はすべてのスペースを ~ に置き換えてください。これは、プログラミングなしでスペースを素早く表示するのに役立ちます、そして逆にするには ~ を “ ” に置き換えてください。
テキストが表示されていないこれらのタイプのファイルを比較するための最高のプログラムはUltra Editです。EDIファイル、インターフェースファイル、技術的なアップロードなどを比較するためにそれを使用しなければなりませんでした。MS Officeはこのタスクのために十分に装備されていません。
セル内に直接特殊文字を表示することはできませんが、隣接する(挿入された)列の数式を使用して、Enters と Spaces を任意の文字に置き換えることができます。
=SUBSTITUTE(A1;" ";" ¶ ")
は、任意の改行を改行用の単語記号に置き換えます。また、入れ子になった数式
=SUBSTITUTE(SUBSTITUTE(A1;" ";" ¶ ");" ";"\_")
は、スペースとエンターの両方を置き換えます。(注意:数式に「Enter」を入力するには、数式の編集中にAlt+Enter
を押す必要があります。
1 find を使ってスペースを入力
2 Replace All を実行して “[s-p-a-c-e]” と入力
3 オプション: セル全体を赤で強調表示したい場合は、その横のフォーマットセレクターを使ってください
結果。これらの厄介なスペースは、自分自身を超明確に明らかにします
なぜこれをする必要があったのか。私は列の中の空白でないセルを見つけるためにCOUNTA関数を使用しました。しかし、それは私が予想していたよりも大きな数字を返していました。私は各セルを一つずつデバッグし、私の驚きに、いくつかの明らかに空白のセルはCOUNTA=0を示し、他のセルは意味のないCOUNTA=1を示しました。私は2つの間の違いを見ることができませんでした。それは、その関数の中で単一の残りの空白がカウントされていることが判明しましたが、それは、セルや上部のエントリボックスのいずれかではどこにも表示されません。
結論。もしあなたが重要なタスクでCOUNTAに頼っているのであれば、あなたが知らないような厄介な空白をカウントしていないことを確認しなければなりません。
私は普段VBAを必要としないので、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
```でエクセルのことをするのが好きです。