[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『抜き取り』(dog)
A列にアルファベット、漢字 ひらがな 数字がランダムにあります。 A列 B列 C列 D列 E列 あ 1 あ 月 A 1 2 い 火 B A ・ ・ ・ ・ 月 ・ ・ ・ ・ 2 火 B 3 い C D う 4 え E 水 木 5 金 土 お このようにB列C列D列E列に抜き取りたいです。 よろしくご指導御願いします。 Excel2003 WindowsXPです。
数字というのは半角数字、アルファベットというのは半角アルファべット(大文字、小文字)だね。 ひらがなはわかるけど漢字ってのが、ちょっとつらいかな?特殊記号や外字やカタカナなんかもあるので これが「漢字」というのは特定不可能。(カタカナは範囲が決まっているので特定はできるけどね) 数字、ひらがな、アルファベット「以外」なら判定できるけど。
で、これを関数で?
(ぶらっと)
B1:=INDEX($A$1:$A$1000,SMALL(IF($A$1:$A$1000<=10^10,ROW($A$1:$A$1000),""),ROW(A1)))&"" C1:=IF(SUMPRODUCT(($A$1:$A$1000>="あ")*($A$1:$A$1000<="ん"))<ROW(B1),"",INDEX($A$1:$A$1000,SMALL(IF(($A$1:$A$1000>="あ")*($A$1:$A$1000<="ん"),ROW($A$1:$A$1000),""),ROW(B1)))) D1:=IF(SUMPRODUCT(($A$1:$A$1000>"ん")*1)<ROW(D1),"",INDEX($A$1:$A$1000,SMALL(IF($A$1:$A$1000>"ん",ROW($A$1:$A$1000),""),ROW(D1)))) E1:=IF(SUMPRODUCT(($A$1:$A$1000>="A")*($A$1:$A$1000<="Z"))<ROW(E1),"",INDEX($A$1:$A$1000,SMALL(IF(($A$1:$A$1000>="A")*($A$1:$A$1000<="Z"),ROW($A$1:$A$1000),""),ROW(D1)))) すべての式は配列数式なので [Ctrl]+[Shift]+[Enter]で確定 式の前後に [ ]が付きます。 下へコピー (NB)
よこから失礼。 ひらがなのコード体系としては、最も小さいものは "あ" ではなく "ぁ" 。 なので、NBさんの式の "あ" を "ぁ" に変えるといいかも。
(ぶらっと)
で、質問者さんのリクワィアメントは、おそらく関数なんだろうけど、VBAでも、そんなに長くならないので。
Sub Sample() Dim c As Range Dim myVal As Variant Dim i As Long, j As Long Dim cntH As Long, cntA As Long, cntN As Long, cntK As Long
Columns("B:E").ClearContents For Each c In Range("A1", Range("A" & Rows.Count).End(xlUp)) myVal = c.Value Select Case myVal Case "ぁ" To "ん" cntH = cntH + 1 i = cntH j = 3 Case "A" To "Z" cntA = cntA + 1 i = cntA j = 5 Case 0 To 9 cntN = cntN + 1 i = cntN j = 2 Case Else 'その他は全て漢字列に。 cntK = cntK + 1 i = cntK j = 4 End Select Cells(i, j).Value = c.Value Next
End Sub
(ぶらっと)
NBさん回答ありがとうございます。 解決しました。 ぶらっとさんのVBAでも解決しました。 ぶらっとさん NBさん有難うございました。 (dog)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.