Excelで範囲を見つける方法

Excelで範囲を見つける方法

列 A には、先頭のゼロによりテキストとしてフォーマットされた数値がいくつかあります。

+-------------+
|  A          |
+-------------+
| 01011111001 |
| 01011111002 |
| 01011111003 |
| 01011111012 |
| 01011111013 |
+------+------+

列 A を入力として使用し、他の 2 つの列 B と C に次のように入力します。

+-------------+--------------+
|  B          |  C           |
+-------------+--------------+
| 01011111001 | 010111111003 |
| 01011111012 | 010111111013 |
| 01011111115 |              |
| 01011111117 |              |
| 01011111019 | 0101111111020|
+------+------+--------------+

数字のシーケンス(範囲など)がある場合、開始番号を列 B に、終了番号を列 C に表示します。

ただし、数字が 1 つの場合は、列 B 自体に残しておくことができます。

範囲と単一の数字を持つ10000個の数字があり、上記のように分離したい

これを Excel で実現するにはどうすればよいでしょうか?

答え1

拡張サンプルデータの使用

01011111002
01011111003
01011111004
01011111005
01011111006
01011111008
01011111009
01011111011
01011111012
01011111013
01011111014
01011111015
01011111016
01011111017
01011111018
01011111020
01011111023
01011111026
01011111027
01011111028
01011111031
01011111032
01011111033
01011111034

リストがソートされていると仮定すると、次の手順が役立ちます。

pool1)データ範囲と空のセルを 1 つ以上含む名前を定義します。

ここに画像の説明を入力してください

nn2)のサイズを数える名前 を定義しますpool

=ROWS(pool)

3) 名前をnewrange数式として定義します。

=MOD((-1+(N(OFFSET(pool,1,,nn-1)-OFFSET(pool,,,nn-1)<>1)*ROW(OFFSET(pool,,,nn-1)))),nn)+1

pool4) in 列の横にある範囲を選択しB、配列数式を入力します (ではなくCtrl+ Shift+を押します)。EnterEnter

=newrange 

0最後のセルの下に入力して選択します。

ここに画像の説明を入力してください

5) 次に、この選択をコピーし、値として貼り付けて昇順で並べ替えます。

ここに画像の説明を入力してください

6) 入力C1:

=IF(OFFSET($A$1,B1,)>0,OFFSET($A$1,B1,),"")

7) 入力D1:

=IF(OFFSET($A$1,B2-1,)=C1,"",OFFSET($A$1,B2-1,))

8)C1:D1列に空のセルが表示されるまで選択してドラッグ/コピーしますC

ここに画像の説明を入力してください

関連情報