[[20170621085859]] 『種類ごとにわける』(パンジーワンコ) ページの最後に飛ぶ

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

 

『種類ごとにわける』(パンジーワンコ)

一行に入っているものをそれぞれわけたいのです。

例)A列     B列      C列    D列    E列
  1     種類      ●●   ××    △△
  2    ●●2台      2
  3    ××1台、△△2台       1     2 

B列には一種類のものだけでなく、二種類、三種類一緒のものもあり、
それらは、「、」で並んでいます。

よろしくお願いします。

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


パンジーワンコさん

今 提示なさっているのは、現状でしょうか。
それをどの様にしたいと思っていらっしゃるのでしょう。
分けたいというのはわかりますが、どう分けてどこに何を入れたいのかが
分からないので

(パオ〜〜ン) 2017/06/21(水) 10:02


 台数は1桁だけなのか、2桁以上の場合もあるのか?
(ねむねむ) 2017/06/21(水) 10:19

 もし、2桁以上もある場合は最大何桁になるだろうか?
(ねむねむ) 2017/06/21(水) 10:25

'
Sub main()
    Dim c As Range, d As Variant
    For Each c In Range("B2:B" & Rows.Count).SpecialCells(xlCellTypeConstants)
        For Each d In Split(c.Value & "、", "、")
         shori d, c.Row
        Next d
    Next c
End Sub
Sub shori(arg, gyou)
    Dim i As Long, dai As String
    For i = 1 To Len(arg)
        If IsNumeric(Mid(arg, i, 1)) Then dai = dai & Mid(arg, i, 1)
    Next i
    If Not Rows(1).Find(Replace(arg, dai & "台", ""), , xlValues, xlWhole) Is Nothing Then
        Cells(gyou, Rows(1).Find(Replace(arg, dai & "台", ""), , xlValues, xlWhole).Column).Value = dai
    End If
End Sub
(mm) 2017/06/21(水) 10:58

説明不足で申し訳ございません。

>パオ〜〜ン様

数量をカウントしたいですが、データを落としているので、B列にはいろんな種類が混ざってしまっています。

B列にはいっているものが●●は何台、××は何台・・・とかぞえたいです。
それを隣の列にいれられればと思いました。

>ねむねむ様

台数は一桁だけではなく2桁もありえます。

(パンジーワンコ) 2017/06/21(水) 11:06


 mm様

ありがとうございます。
うわ〜難しい式がたくさんありますね。。。。
これでやってみます。

ありがとうございました。
(パンジーワンコ) 2017/06/21(水) 11:07


Sub main()'シンプル化
    Dim c As Range, d As Variant, dai As String, i As Long
    For Each c In Range("B2:B" & Rows.Count).SpecialCells(xlCellTypeConstants)
        For Each d In Split(c.Value & "、", "、")
            dai = ""
            For i = 1 To Len(d)
                If IsNumeric(Mid(d, i, 1)) Then dai = dai & Mid(d, i, 1)
            Next i
            If Not Rows(1).Find(Replace(d, dai & "台", ""), , xlValues, xlWhole) Is Nothing Then
                Cells(c.Row, Rows(1).Find(Replace(d, dai & "台", ""), , xlValues, xlWhole).Column).Value = dai
            End If
        Next d
    Next c
End Sub
(mm) 2017/06/21(水) 11:13

 B2セルに
 =IFERROR(SUBSTITUTE(MID($B2,FIND(C$1,$B2)+2,2),"台","")*1,"")
 と入力して右および下へフィルコピー。
(ねむねむ) 2017/06/21(水) 13:43

 Sub test()
    Dim a, i As Long, ii As Long, temp
    With Cells(1).CurrentRegion
        .Offset(1, 2).ClearContents
        a = .Value
        For ii = 3 To UBound(a, 2)
            For i = 2 To UBound(a, 1)
                temp = StrConv(a(i, 2), 8)
                If temp Like "*" & a(1, ii) & "*" Then
                    a(i, ii) = Val(Mid$(temp, InStr(temp, a(1, ii)) + Len(a(1, ii))))
                End If
            Next
        Next
        .Value = a
    End With
End Sub

(seiya) 2017/06/21(水) 14:04


 おっとしまった。
 =IFERROR(SUBSTITUTE(MID($B2,FIND(C$1,$B2)+LEN(C$1),2),"台","")*1,"")
 と修正してくれ。
 (前回の式だと種類の長さが2文字固定になっていた)
(ねむねむ) 2017/06/21(水) 14:07

コメント返信:

[ 一覧(最新更新順) ]


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