Excel 2007スプレッドシートに、データを「COM [1-4]または1-65535」の値に制限する列があります。 Excelにこの値のセットを適用させるにはどうすればよいですか?あなたは正規表現をサポートするカスタムVBA関数(またはマクロ)を作成する必要がありますExcelのデータ検証 - 正規表現ですか?
TY、 フレッド
Excel 2007スプレッドシートに、データを「COM [1-4]または1-65535」の値に制限する列があります。 Excelにこの値のセットを適用させるにはどうすればよいですか?あなたは正規表現をサポートするカスタムVBA関数(またはマクロ)を作成する必要がありますExcelのデータ検証 - 正規表現ですか?
TY、 フレッド
。
これは1回限りの問題であれば、複雑なFIND()/ MID()/ SUBSTITUTE()などを使用して解決できます。 (これは私の仕事です)、Excelの機能が満載の5行のセルを見つめない限り、これはお勧めしません。
編集:あなたが持っているか、提供するために、さらに情報が必要な場合私はこれを更新します。
編集:ここでは、Excelの関数として正規表現を使用することができます方法は次のとおりです。
関数REFind関数(文字列、論理値= trueとオプションblnCaseとして文字列、strPatternとしてstrValueに)ブール
として、Dim objRegEx As Object Dim blnValue As Boolean ' Create regular expression. Set objRegEx = CreateObject("VBScript.RegExp") objRegEx.Pattern = strPattern objRegEx.IgnoreCase = blnCase ' Do the search test. blnValue = objRegEx.Test(strValue) REFIND = blnValue End Function
エンド機能
ない非常に柔軟な、しかし、あなたはカスタムを使用することができますこの式、:
=OR(AND(LEN(A2)=4,LEFT(A2,3)="COM",MID(A2,4,1)>="1",MID(A2,4,1)<="4"),OR(AND(A2>=1,A2<=65535)))
私は、これはあなたがあなたのコメントに指定されたものにそれを絞り込むと思います。
+1 RegExpは、VBAを使用せずに達成できるものについては過剰です – brettdj
下記のリボン>>データ>>データ検証で使用してください。
がを許可:リスト ソース不要VBA、正規表現や数式で働いていた標準のデータ検証を使用して、この特定の問題については
=OR(AND(E5 >= 1, E5 <= 65535), E5 = "COM1", E5 = "COM2", E5 = "COM3", E5 = "COM4")
:[許可=カスタムおよび式に以下を追加します。 "COM1、COM2、COM3、COM4,1-65535"
これはまた、ユーザーを助けるためのセルのドロップダウンリストを提供します。
あなたの基準に合った値だけを他の列に表示するにはどうしたらいいですか?あなたは範囲の一致または完全一致を探していますか?一致させる値の例と、近いが一致しない値の例を挙げることができますか? – jimbojw
値がCOM1、COM2、COM3、COM4、またはint 1-65535 –