[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『数字を立てたものに対しての文字の抽出』(エクセル)
B C D E F G H I J K 2 あ い う え お か き く け こ 3 4 5 6 7 8 9 5 1 10 0 11 0 12 0 13 8 2 12
B9:K9に数字を立てたもののみ別セル(シート)に
たとえば、B:9に数字5を入力した場合の文字のみを抽出する方法
この場合B:9とC:9に数字入力があるので
別セルに「あ」と「い」を抽出したいのですがどなたかご教授ください…。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
文字があったら1行目の文字をセット。それを縦横ループさせて1セルずつ処理。そんな簡単なマクロで実現できそうですよ。
ご自分で作ってみては?
(???) 2015/04/06(月) 16:04
Sub test() Dim wkOut As Worksheet Dim R As Range Dim i As Long Dim iR As Long
Set wkOut = Sheets("Sheet2") iR = 18
For Each R In Range("B9:K" & Cells(Rows.Count, "B").End(xlUp).Row) If R.Value <> 0 Then wkOut.Cells(iR, "E").Value = Cells(2, R.Column).Value iR = iR + 1 End If Next R End Sub (???) 2015/04/06(月) 16:47
Sub test() Dim r As Range, x, n As Long n = 18 For Each r In Range("b9", Range("b" & Rows.Count).End(xlUp)).SpecialCells(2, 1) x = Filter(Evaluate("if(isnumber(" & r.Resize(, 10).Address & "),b2:k2,char(2))"), Chr(2), 0) Sheets("sheet2").Cells(n, "e").Resize(UBound(x) + 1).Value = Application.Transpose(x) n = n + UBound(x) + 1 Next End Sub (seiya) 2015/04/06(月) 21:44
数式やけど。。。
Sheet1の9行目 ⇒ Sheet2のE列 Sheet1の10行目 ⇒ Sheet2のF列
・・・
として
Sheet2のE18に
=IF(COUNT(INDEX(Sheet1!$B$9:$K$15,COLUMN(A1),0))<ROW(A1),"",INDEX(Sheet1!$2:$2,SMALL(INDEX((INDEX(Sheet1!$B$9:$K$15,COLUMN(A1),0)="")*10^16+COLUMN($B1:$K1),),ROW(A1)))) (GobGob) 2015/04/07(火) 08:02
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.