エマニュエルは、セルに数字と文字の両方が混在している場合に、条件付き書式を使用してセルを強調表示する方法を知りたいと考えています。すべての文字またはすべての数字が含まれている場合、セルは強調表示されません。

このヒントでは、条件付きフォーマットを作成する方法に焦点を当てません。そのタスクに焦点を当てた他のExcelTipsはたくさんあります。私が焦点を当てるのは、条件付き書式ルールを定義する際に使用できるいくつかの式です。数式はセル内の値を調べ、文字と数字の両方が含まれている場合は「True」を返し、それ以外の場合は「False」を返す必要があります。

ルールで試すことができる3つの異なる式は次のとおりです。

=SUM(IFERROR(FIND(ROW($1:$10)-1,A1),))*ISTEXT(A1)

=AND(ISTEXT(A1),MATCH(FALSE,ISERROR(1*MID(A1,ROW(INDIRECT("1:15")),1)),0))

=AND(SUM(--(ISNUMBER(--MID(A1,ROW(INDIRECT("A1:A"&LEN(A1))),1)))),ISTEXT(A1))

これらの数式はどれも問題なく機能しますが(個人的には最短の数式を使用することを選択します。入力は少なくなります)、潜在的な欠点が1つあります。セルに数字が格納されていて、セルがテキストとしてフォーマットされている場合でも、数式は「True」を返し、条件付きフォーマットが適用されます。これは、各数式がISTEXT関数を使用しているために発生します。この関数は、セルの形式を調べて、テキストが含まれているかどうかを確認します。

この潜在的な「誤検知」を回避する最も簡単な方法は、条件付き書式ルールで参照できるユーザー定義関数(マクロ)を作成することです。セルの内容(フォーマットではない)に文字と数字の両方が含まれている場合にのみ「True」を返す非常に単純なUDFを次に示します。

Function CheckChars(r As Range) As Boolean     CheckChars = False     If r Like "#" And UCase(r) Like "[A-Z]" Then CheckChars = True End Function

これを条件付き書式ルールで使用するには、次の式を使用します。

=CheckChars(A1)

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(13422)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。