Excel 2007カスタムデータ検証、広範囲の文字を除外


0

ユーザーが基本文字(AZ、az、0-9、-、〜、 '、\、/)のみを入力できるデータ検証(絶対にマクロはありません。単にオプションではありません)を作成しようとしています。行うには、特定の文字をチェックし、見つかった場合はエラーメッセージをポップする検証を作成します。したがって、データ検証式は次のようになります。

= ISERROR(FIND( "&"、D17:D110))

ここで、D17:D110はすべて検証されるセルの範囲です。そのため、ユーザーが値を入力した後、現在編集中のセルに「&」が含まれている場合、エラーがスローされます。この方法は美しく機能します。しかしながら!私はそれ以上のキャラクターを禁止する必要があるので、試しました。

= ISERROR((OR(FIND( "&"、D17:D110)、FIND( "^"、D17:D110))))

これは「^」に対して機能しないだけでなく、「&」の検索を中断します。

だから私が必要なのは

  1. 複数の文字が許可されないようブロックする
  2. 上記の文字のみを許可します。

警告:数式の追加方法(.NET OfficeOpenXml)のため、Excelに入力して数式をドラッグした場合のように、1つのセルだけを参照することはできません。これはAPIの制限です。それが、私が全範囲で使用する方法を見つけた理由です。

回答:


0

これは、OR内でエラーを生成し、ORが評価に失敗するためです。また、ANDを使用する必要があります。

これを試して:

= AND(ISERROR(FIND( "&"、A1))、ISERROR(FIND( "^"、A1)))

ANDを使用します。これは、charが見つからない場合、ISERRORがTRUEになるためです。

and(notA、notB)= not(or(A、B))

A = trueが&が見つかったことを意味し、B = trueが^が見つかったことを意味する場合、ロジックを見ることができると思います


ハ!はい、それはとても理にかなっています。Excelの数式には、実際のエラー修正機能はありません。それは美しく機能します!ありがとう。
user1115223
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.