プロが教えるわが家の防犯対策術!

Excelで列の表示をしないを使用したときに、表示されているデータだけに自動連番を付ける方法を教えてください
よろしくお願いします

A 回答 (4件)

こんにちは!



>Excelのフィルタを利用すると選択データ(数値・文字)だけが表示されます
あっなるほど・・・「Excelで列の表示をしないを」は
「列」ではなく「行」だったんですね(^^;

  A  B
1   タイトル▼
2 式 ***
3 ↓ ***
4 ↓ ***
5 ↓ ***
6 ↓ ***
7 ↓ ***
8 ↓ ***
9 ↓ ***

式 セルA2に =SUBTOTAL(3,$B$2:B2)
  と入力後、必要行まで複写

参照先(この例ではB列)は、文字、数値、数式での""、
等はOKですが完全な空白があるとカウントされません
必ず、全部書き込まれた列(キー列等)を指定して下さい!
    • good
    • 0
この回答へのお礼

大変有り難うございました
大変理解しやすくコメントしていただき助かりました。
これからも宜しくお願いします。

お礼日時:2001/12/02 12:37

>Excelで列の表示をしないを使用したときに、


  これは、ある列を『表示しない』としてあると解釈しました。

>表示されているデータだけに自動連番を付ける
  『表示されている』があやふやですが、『表示してある列の中で値の入っているセル(数値または文字)』としました。

解釈通りだとすると、非表示にした列を認識するのは算式ではできないと思い、下記マクロを書いてみました。
連番を書き出す位置の指定が無いので、選択した行の1行上に書き出しています。

操作方法としては、データが入っている1行(連番を振りたいデータが入っている行です)を選択して実行します。


ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュール で標準モジュールを挿入し、そこに下記コードを貼り付けます。

Public Sub RenbanSet()
  Dim rg As Range '選択範囲の1つのセル
  Dim startNum As Double '連番の最初の数値
  Const nStep = 1 '連番のステップ(いまは連番は+1)
  Dim col As Integer 'カウンタ

  startNum = InputBox("連番の最初の数値を入力します")

  For Each rg In Selection '選択範囲に対して実行
    If Not rg.EntireColumn.Hidden = True And rg.Value <> "" Then
      '列が非表示でなく、入力があったら
      rg.Offset(-1, 0) = startNum + col '選択した1行上(-1)に連番をセットする
      col = col + nStep '連番を増やす
    Else
      '非表示列または未入力セル
      rg.Offset(-1, 0) = ""
    End If
  Next
End Sub
    • good
    • 0

追記 最後に書こうと思っていたものを書き忘れて


   UPしてしまいましたm(__)m

対象のデータが "" 以外の時、全て対象とする場合

 =IF(B2="","",MAX(A$1:A1)+1)
    • good
    • 0
この回答へのお礼

大変有り難うございました
説明不足で申し訳ありませんでした。
Excelのフィルタを利用すると選択データ(数値・文字)だけが表示されます。その表示データの左側に連続した番号を入力する方法を教えてください

お礼日時:2001/12/02 09:40

こんばんは!



お望みが、
 数式でなのかVBAでなのか
 連番が行なのか列なのか
不明で、かつ表示されるデータが数値なのか文字なのか
表示されない時の処理が "" なのか 0 の非表示なのか
等、シート構成がわからないので不確かですが


  A  B
1   タイトル
2 式 ***
3 ↓
4 ↓ ***
5 ↓
6 ↓
7 ↓ ***
8 ↓
9 ↓

数式で1例

対象(B列データ)が文字列でかつ "" を無視する場合
セルA2に
 =IF(COUNTIF(B2,"?*"),MAX(A$1:A1)+1,"")

対象が数値でかつ 0 と "" を無視する場合
 =IF(SUM(B2),MAX(A$1:A1)+1,"")

対象が数値でかつ 0 も対象とする場合
 =IF(COUNT(B2),MAX(A$1:A1)+1,"")

必要な下行までコピー
    • good
    • 0
この回答へのお礼

大変有り難うございました
説明不足で申し訳ありませんでした

数式で連番は列 表示されるデータは数値・文字両方 表示されない時の処理はフィルタです もしよければよろしくお願いします

お礼日時:2001/12/02 09:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!