web-dev-qa-db-ja.com

Excelデータをフィルター処理したので、行に番号を付けたいと思います。それ、どうやったら出来るの?

基本的には、特定の基準でデータをフィルター処理した後に新しい列を挿入し、その列に各行に1つずつ連続した番号を挿入するだけです。つまり、1つの列に次のようなデータがあります。

アームストロング、ジョン

ビーティ、ジェーン

クームス、ジョン

そして、次のような新しい列を実行する必要があります。

1アームストロング、ジョン

2ビーティー、ジェーン

3クームス、ジョン

最初の数個の数字を入力してから、下にドラッグして列の残りを埋めようとしましたが、そうすると、何らかの理由ですべての数字が1に変わります。

助けてくれてありがとう。

5
user347754

さて、この問題に対する正しい答えを見つけました こちら

手順は次のとおりです。

  1. データをフィルタリングします。
  2. 番号を追加するセルを選択します。
  3. F5を押します。
  4. 特別を選択します。
  5. [可視セルのみ]を選択して[OK]を押します。
  6. これで、フィルタリングされたデータの最上行(ヘッダーのすぐ下)に次のコードを入力します。

    = MAX($ "Your Column Letter" $ 1: "Your Column Letter" $ "フィルターの現在の行-1")+ 1

    例:

    = MAX($ A $ 1:A26)+1

    これはセルA27から適用されます。

  7. Ctrlキーを押しながらEnterキーを押します。

これは範囲内でのみ機能し、テーブルでは機能しないことに注意してください!

5
BradyK

この機能を試してください:

=SUBTOTAL(3, B$2:B2)

詳細については、この ブログエントリ を参照してください。

1
Min

同じ問題がありました。私は専門家ではありませんが、これが使用したソリューションです。データをフィルター処理する前に、最初の一時列を作成して、データセット全体に元の並べ替え順序を設定します。一時的な「元のソート順」列に自動番号を付けます。次に、データをフィルタリングします。フィルター処理したデータをコピーして、新しいワークシートに貼り付けます。これにより、フィルター処理されたデータのみが新しいシートに移動し、行番号が連続するようになります。目的のフィールドに自動番号を付けます。元のワークシートに戻り、フィルタリングされた行を削除します。セカンダリシートから新しく番号が付けられたデータをコピーして、元のワークシートの下部に貼り付けます。次に、フィルターをクリアし、一時的な「元のソート順」列でワークシートをソートします。これにより、新しく番号付けされたデータが元の順序に戻り、一時列を削除できます。

1
userJW

手順1:挿入する列の列全体(ヘッダーを除く)を強調表示します

ステップ2:(Kutoolsを使用)[挿入]ドロップダウンで、[カスタムリストに入力]をクリックします

ステップ3:[編集]をクリックします

ステップ4:リストを作成する(例:1、2)

ステップ5:新しいカスタムリストを選択して、[範囲を入力]をクリックします

完了!!!

0
CaliExcel

これを試して:

最初の行で値1を設定します(例:cell A1

次の行セット:=A1+1

最後に残りの行を自動補完します

0
apomene

別の列の各値のシーケンスシリーズで列を埋めるという同じニーズがありました。上記のすべての回答を試しましたが、問題を解決できませんでした。簡単なVBAマクロで解決しました。

私のデータは同じ構造です(ただし、3000行あります)。

  • N2は、テーブルがフィルタリングされる列です。
  • N3は、シリーズを埋めたい列です。

A | B

N2 | N3

1 | 1

2 | 1

3 | 1

1 | 2

6 | 1

4 | 1

2 | 2

1 | 3

5 | 1

以下のコード:

> Sub Seq_N3() ' ' Seq_N3 Macro ' Sequence numbering of N3 based on N2 value
> do N2 
>     Dim N2 As Integer
>     Dim seq As Integer
> 
>         With ActiveSheet
>             
>             For N2 = 1 To 7 Step 1
>             seq = 1                 ' 
>             .Range("B2").Select     ' 
>             
>                 Do While ActiveCell.Offset(0, -1).Value2 <> 0
>                     
>                     If ActiveCell.Offset(0, -1).Value2 = N2 Then        
>                         ActiveCell.Value2 = seq                         
>                         seq = seq + 1                                   
>                         ActiveCell.Offset(1, 0).Select
>                     Else
>                         ActiveCell.Offset(1, 0).Select                  
>                     End If
>                     
>                 Loop
>                 
>             Next N2
>                    
>         End With End Sub

それが役に立てば幸い!

0
darh78

これを行う最も簡単な方法は、フィルターを削除し、合計データの先頭からシリーズを埋めることです。目的のデータをフィルターし、番号のリストを新しいシートにコピーします(これは、番号を追加する合計行のみである必要があります)A1列に貼り付けます。列B1に「1」を追加し、右クリックして押したまま、数字の最後までドラッグして、「シリーズを埋める」を選択します。次に、フィルターを使用してリストに戻り、右の「VLOOKUP」の次の列に、新しいシートに貼り付けたリストに対するフィルター処理された番号を入力し、2番目の値を返します。

0
Dez