想定:
7:11
する必要があります7-11
63
する必要があります53
- 範囲外の数値 (例:
18
) は問題ありません
- 範囲はテキスト形式です
以下が役立つか、少なくとも「正しい方向への一歩」であることを願っています。
A コンポーネントを解析する
たとえば8-15, 18, 31-32
、セルに貼り付け (たとえばA1
)、データ > データ ツール - テキストを列に > 区切り記号付き > 次へ > カンマ、スペースにチェックを入れ、連続する区切り文字を 1 つとして扱う > 次へ > 必要に応じて列を選択 > それぞれのテキストを選択 > 完了
単一の列を処理する方が簡単な場合があるため、データを選択し、[コピー] > [選択A2
] > [形式を選択して貼り付け] > [転置] > [OK] および [内容を削除] を選択しRow1
ます。
B 検索値 ( 16
) をB1
C 以下の式をB2
にコピーし、必要に応じて下にコピーします。
=AND(B$1>=VALUE(LEFT($A2,SEARCH("-",$A2)-1)),B$1<=VALUE(RIGHT($A2,LEN($A2)-SEARCH("-",$A2)))))
結果はTRUE
、検索値が離散範囲内またはそのいずれかの境界上にあるはずです。
この数式では、ハイフンを使用して個別の範囲を「認識」しています。SEARCH は、それが配置されている場所を探します (両側に 1 つまたは 2 つの文字がある可能性があるため)。LEFT と RIGHT は、下限と上限のためのものです (上限が 1 文字か 2 文字かを指定するために LEN と組み合わせて使用される RIGHT の場合)。VALUE は、テキストを検索値と同等のものに変換するために必要です。AND は、プロセスが「範囲内」かどうかを判断する際に両方の境界を考慮するためのものです。
「できれば VBA を使用したくない」 - しかし、VBA を使用することをお勧めします。
ただし、いくつかの固定参照 ($) を使用すると、標準の数式を使用する場合よりも少し簡単になります。これはColumnA
、数式を右側にコピーすることで、指定された個別の範囲 ( に追加される場合があります) をさまざまな検索値に対してクエリできるためです。必要に応じて下に移動し、(数値形式として) さらに検索値を に入力しますRow1
。