[[20170314174852]] 『関数を使用してA列に番号を付したい - B列の文字浴x(マリオ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『関数を使用してA列に番号を付したい - B列の文字列を判定』(マリオ)

 すいません。
 関数の記述の仕方を教えてください。どんな数式?
 offset , if  ???
 ★文字列と文字列の間には、空白はありません。
 ★B列の空白は、考えなくていいです。 

 はじめ、B列だけに、下記のように文字列が入っているとして、
 文字列が入っている左隣(A列)に数式を入れて、
 A列に、下記のように番号を付したいです。

     |[A]|[B]
 [2] |  1|あ 
 [3] |  1|あ 
 [4] |  2|い 
 [5] |  2|い 
 [6] |  2|い 
 [7] |  3|う 
 [8] |  3|う 
 [9] |  3|う 
 [10]|  3|う 

< 使用 Excel:Excel2013、使用 OS:Windows10 >


B列が1個上と同じなら、1個上と同じ
B列が1個上と異なるなら、1個上に1加算

(マナ) 2017/03/14(火) 18:37


ども^^

マクロでやるとめんどくさいですね^^;

Sub Macro5()

    Dim c As Range
    Dim i As Long

    With Range("B1")
        .Insert Shift:=xlDown
        .Cells(0).Value = "タイトル"
        Application.DisplayAlerts = False
        .Subtotal GroupBy:=1, Function:=xlCount, TotalList:=1
        Application.DisplayAlerts = True

        For Each c In .CurrentRegion.SpecialCells(xlCellTypeBlanks).Areas
            i = i + 1
            c.Offset(, -1).Value = i
        Next
        .RemoveSubtotal
    End With
    Rows(1).Delete
    Columns(2).Delete
End Sub

(まっつわん) 2017/03/14(火) 18:59


 すでにマナさんからヒントがありますが

 A1セル、B1セル共に何も入力されていなければ
 B2:=IF(B1=B2,A1,A1+1)
 下にコピー

 もし何かしら入力されていたら
 B2:1
 B3:=IF(B2=B3,A2,A2+1)
 B3から下にコピー
(bi) 2017/03/14(火) 22:43

 こんばんわ。

 OFFSET ???

 ワークシート関数は使う必要は無いですね。
 A2 =A1+(B2<>B1)
 下にオートフィル

 もしA1に項目名などが入っていてエラーになるなら、A2だけ1を入力して下さい。

(sy) 2017/03/14(火) 23:45


数式での実現は、biさんと全く同じで考えました。
おまけで、ご自身でも簡単に作れるでしょうけど、マクロでの例なぞ。

 Sub test()
    Dim i As Long
    Dim iw As Long

    iw = 1

    For i = 1 To Cells(Rows.Count, "B").End(xlUp).Row
        Cells(i, "A").Value = iw
        If Cells(i, "B").Value <> Cells(i + 1, "B").Value Then
            iw = iw + 1
        End If
    Next i
 End Sub
(???) 2017/03/15(水) 10:32

 bi さんのが、一番理想に近かったです。
 ありがとうございます。
 マナさんからのヒントでしたね。
 マナさんも、ありがとうございますm(_ _)mペコ

 ★あらかじめ、D1の値は消去しておいて、
 C1に文字が入っていても使えるものとして、
 D2=IF(AND(C1=C2,ROW()<>2),D1,D1+1)
 としてみました。D8まで、フィルコピー

 ★C1のtitleが「バナナ」でも使えるようにするため「ROW()<>2」
 の条件を加えてみました。

    |[C]         |[D]
 [1]|title       |   
 [2]|バナナ      |  1
 [3]|バナナ      |  1
 [4]|りんご      |  2
 [5]|みかん      |  3
 [6]|みかん      |  3
 [7]|パイナップル|  4
 [8]|さくらんぼ  |  5

 ==========================================
 マクロで、この数式を使ってみました。
 マクロで、この数式を使いたかったので、質問しました(^^♪ 

 Sub Test()
     Dim fr As Long

     Columns("D").ClearContents
     fr = Cells(Rows.Count, "C").End(xlUp).Row

     With Range("D2")
       .Formula = "=IF(AND(C1=C2,ROW()<>2),D1,D1+1)"
       .AutoFill Range("D2:D" & fr)
     End With
 End Sub

 ==========================================
 まっつわんさん、syさん、???さん
 ありがとうございました。

(マリオ) 2017/03/17(金) 14:41


 >>マクロで、この数式を使ってみました。
 >>マクロで、この数式を使いたかったので、質問しました(^^♪ 

だったら始めからそう書けば?こんなことすら自分じゃ思いつかないんだからさ
(lol) 2017/03/17(金) 15:02


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.