2

2 つのシステム間でエラー チェックを設定しようとしていて、異なる形式の週番号を比較する必要があります。1 つのシステムは週番号を " 8-15, 18, 31-32" などのテキスト形式で生成し、もう 1 つのシステムは個別の値を生成します。16 などの値が上記のような倍数の範囲内にあるかどうかを確認するにはどうすればよいですか?

これは、あるシステムの参照番号、曜日、時間、週番号 (例: XXX111 Weds 9:00 9) を別のシステム (例: XXX111 Wed 9:00 7:11, 13, 16, 52-63 or XXX111 Thu 9:00 5, 6, 11-16) の出力と照合する、より大きな問題の一部です。多くの検索にもかかわらず、私は上記のビットで壁にぶつかったので、どんな助けも大歓迎です。

VBAできれば使わない方がいいです。あなたの知恵を前もって感謝します。

4

1 に答える 1

0

想定:

  1. 7:11する必要があります7-11
  2. 63する必要があります53
  3. 範囲外の数値 (例: 18) は問題ありません
  4. 範囲はテキスト形式です

以下が役立つか、少なくとも「正しい方向への一歩」であることを願っています。

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、検索値が離散範囲内またはそのいずれかの境界上にあるはずです。

SO13491293 の例

この数式では、ハイフンを使用して個別の範囲を「認識」しています。SEARCH は、それが配置されている場所を探します (両側に 1 つまたは 2 つの文字がある可能性があるため)。LEFT と RIGHT は、下限と上限のためのものです (上限が 1 文字か 2 文字かを指定するために LEN と組み合わせて使用​​される RIGHT の場合)。VALUE は、テキストを検索値と同等のものに変換するために必要です。AND は、プロセスが「範囲内」かどうかを判断する際に両方の境界を考慮するためのものです。

「できれば VBA を使用したくない」 - しかし、VBA を使用することをお勧めします。

ただし、いくつかの固定参照 ($) を使用すると、標準の数式を使用する場合よりも少し簡単になります。これはColumnA、数式を右側にコピーすることで、指定された個別の範囲 ( に追加される場合があります) をさまざまな検索値に対してクエリできるためです。必要に応じて下に移動し、(数値形式として) さらに検索値を に入力しますRow1

于 2013-03-07T19:26:08.310 に答える