皆様はじめまして。関数初心者です。
以下の処理を行うには、どのような関数を用いれば良いでしょうか。
【例】
A B C
1 書名1 1111 1000
2 書名2 1111-A 1200
3 書名3 1111-B 1200
4 書名4 1112 1300
5 書名5 1112-A 1500
6 書名6 1112-B 1500
列Bの中から、-Bのデータを抜き出し、更にBを基準に昇順並び替え
【結果】
A B C
3 書名3 1111-B 1200
6 書名6 1112-B 1500
皆様のお知恵を拝借できますでしょうか。
どうぞ宜しくお願いいたします。
No.6
- 回答日時:
A No.5です。
アルキメデスではないですが、風呂に入っていて気がつきました。今回の事例では、作業列は不要ですね。結局A No.2の方の回答をオートフィルター→フィルターオプションに変えただけですね。フィルターオプションの方が、準備は面倒ですが、より複雑な条件での抽出には向いています。ご参考まで。
No.5
- 回答日時:
列見出しを設定し、作業列を設けて、B列の数値を取り出し、フィルタオプションで、B列に文字Bが入っているものだけを抽出して別の場所に出力し、抽出先で作業列の値で並び替えといったところでしょうか。
番外編で、物好きにしか分からない?VBAコードです。列見出しが入っていない事を前提にしています。結果をF1以下に出力します。
Sub test()
Dim i As Long
Dim targetRange As Range
Dim targetRow As Range
Dim destRange As Range
Dim rs As Object
Const adBSTR As Long = 8
Const adInteger As Long = 3
Const adOpenStatic As Long = 3
Const adLockOptimistic As Long = 3
Const adUseClient As Long = 3
Set rs = CreateObject("ADODB.Recordset")
Set targetRange = ActiveSheet.Range("a1").CurrentRegion
Set destRange = ActiveSheet.Range("f1")
With rs
.CursorLocation = adUseClient
.fields.Append "field0", adBSTR, 20
.fields.Append "field1", adBSTR, 50
.fields.Append "field2", adInteger
.fields.Append "field3", adInteger
.CursorType = adOpenStatic
.LockType = adLockOptimistic
.Open
End With
With rs
For Each targetRow In targetRange.Rows
.AddNew
For i = 1 To targetRow.Columns.Count
.fields(i - 1).Value = targetRow.Cells(i).Value
Next i
.fields(targetRow.Columns.Count).Value = Val(targetRow.Cells(2).value)
.Update
Next
End With
rs.MoveFirst
rs.Filter = "field1 like '*B*'"
rs.Sort = "field3 ASC"
Do While Not rs.EOF
For i = 0 To targetRange.Columns.Count - 1
destRange.Offset(0, i).Value = rs.fields(i)
Next i
rs.MoveNext
Set destRange = destRange.Offset(1, 0)
Loop
Set rs = Nothing
End Sub
No.4
- 回答日時:
ちなみに・・・蛇足ですが
=IF(COUNTIF(B5,"*"&{"-A"}),1,IF(COUNTIF(B5,"*"&{"-B"}),2,0))
としておけば、
-Aのときは1を返し、-Bのときは2を返すので
(それ以外は0)
種別ごとにデータの抽出がしやすくなります。
No.1
- 回答日時:
DEFに以下のような感じで入れてって、
D E F
1 =IF(COUNTIF(B1,"*-B*"),A1,"")=IF(COUNTIF(B1,"*-B*"),B1,"")=IF(COUNTIF(B1,"*-B*"),C1,"")
2 =IF(COUNTIF(B2,"*-B*"),A2,"")=IF(COUNTIF(B2,"*-B*"),B2,"")=IF(COUNTIF(B2,"*-B*"),C2,"")
3
4
関数ではないですが「データ」-「ソート」でDEF行を並べ替える。
はどうでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) EXCELのセルへの色づけ 2 2023/06/07 01:22
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Excel(エクセル) エクセルのマクロで複数条件に当てはまるものを全て抽出したいです 7 2022/05/21 08:51
- Excel(エクセル) Excel 郵便番号順に並び変えたい 同じ番号が複数あるとき 4 2022/04/28 18:35
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Excel(エクセル) Excelで漢字人名が勝手に並び変わる 2 2023/01/14 22:14
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Visual Basic(VBA) 複数ブックの統合について Excel VBA 1 2022/05/13 09:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
エクセル(勝手に太字になる)
-
Excelで半角の文字を含むセルを...
-
EXCELで 一桁の数値を二桁に
-
スマートな関数を教えて下さい。
-
2つのエクセルのデータを同じよ...
-
エクセル 同じ値を探して隣の...
-
50人を数回、グループ分けする...
-
エクセルで文字が混じった数字...
-
VBAで文字列を数値に変換したい
-
Excel、市から登録している住所...
-
エクセルで、列の空欄に隣の列...
-
エクセル 時間帯の重複の有無
-
エクセルの表から正の数、負の...
-
「B列が日曜の場合」C列に/...
-
文字列に数字を含むセルを調べたい
-
オートフィルターをかけ、#N/A...
-
【VBA】特定列に文字が入ってい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
エクセル 同じ値を探して隣の...
-
エクセル(勝手に太字になる)
-
「B列が日曜の場合」C列に/...
-
エクセル 文字数 多い順 並...
-
EXCELで 一桁の数値を二桁に
-
Excelで半角の文字を含むセルを...
-
エクセルで文字が混じった数字...
-
エクセルの項目軸を左寄せにしたい
-
Excel、市から登録している住所...
-
エクセルで、列の空欄に隣の列...
-
エクセルの表から正の数、負の...
-
エクセルの並び変えで、空白セ...
-
VBAで文字列を数値に変換したい
-
A列がない・・・A列が非表示に...
-
文字列に数字を含むセルを調べたい
-
50人を数回、グループ分けする...
おすすめ情報