エクセルでのデータ抽出について質問です。
現在、エクセルで以下のようなシートがあります。
*アルファベットと数字はエクセルシートの座標です。データではないです。
_|__A___|__B___|__C___|__D__|
1|_太郎_|_次郎_|_三郎_|
2|__@___|__@___|__ ___|
3|__@___|__@___|__ ___|
4|__@___|__ ___|__@___|
5|__@___|__ ___|__@___|
上記のように1行目には人の名前が入っていて、二行目以降には@が入っているシートです。
現在、私のやりたいことはDセルの2~5行目までに何かしら数式を入れて、シートを行で見たときに@が入っている人の名前をDセルに表示をさせたいです。
具体的に言うと、D2には『太郎・次郎』、D5には『太郎・三郎』といった具合です。
どなたかこの処理が簡単にできる関数や方法をご存知の方はいらっしゃいませんでしょうか?
実際にはデータシートが1000行ほどあって手打ちだとなかなか骨が折れる仕事です。。。
どなたかご助言お願いいたします。
よろしくお願いいたします。
No.5ベストアンサー
- 回答日時:
VBAは判らんかも知れないが、今回だけ使う、ということで下記をやってみたら。
(エクセル関数だってユーザーは内部でエクセルがどう何をやってるか知らないで使っているのだ)普通の関数感覚で使えて、コード行数が少なくて実現するのでお勧めする。
下記はユーザー関数というものです。
IF文でやると列数が増えると式が長くなってダサい。
例データ
A1:E4
E列は結果
-は空白の代わり。aは氏名の代わり。
abcd
-@@-b・c
@---a
@-@@a・c・d
ーー
メニューでツールーマクローVisualBasicEditorをクリック
メニューで挿入ー標準モジュール
そのVBEの標準モジュールの画面に下記をコピペ
Function ketu(a)
Dim cl As Range
s = ""
For Each cl In a
If cl = "@" Then s = s & "・" & Cells(1, cl.Column)
Next
ketu = Right(s, Len(s) - 1)
End Function
ーーー
E2に
=ketu(A2:D2)
と入れて式を縦方向に複写。
列が4列より多いときは、=ketu(A2:K2)のように変えるだけ。
VBAコードは変更なし。
ご察しの通りVBAは全然知りませんでしたが、言われたとおりにやったら簡単に出来てちょっと感動しました。
ありがとうございました。
No.3
- 回答日時:
A B C D E F G H I J K L
1 太郎 次郎 三郎 1 2 3
2 @ @ 太郎・次郎 0 1 2 太郎 次郎
3 @ @ 太郎・次郎 0 1 2 太郎 次郎
4 @ @ 太郎・三郎 0 1 3 太郎 三郎
5 @ @ 太郎・三郎 0 1 3 太郎 三郎
6 @ @ @ 太郎・次郎・三郎 1 2 3 太郎 次郎 三郎
7 @ 次郎 0 0 2 次郎
F2: {=SMALL(($A2:$C2="@")*COLUMN($A2:$C2),F$1)}
J2: =IF(F2,INDEX($A$1:$C$1,,F2),"")
D2: =SUBSTITUTE(TRIM(J2&" "&K2&" "&L2)," ","・")
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Excel(エクセル) エクセルVBA VLOOKUPを使ってのカウント作業 2 2023/02/19 09:03
- Excel(エクセル) エクセルの数式で教えてください。 1 2022/10/25 09:26
- Excel(エクセル) メモ帳からエクセルにセル区切りで表示させたいんです 7 2023/02/25 22:04
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/12 09:24
- Excel(エクセル) エクセルのマクロで複数条件に当てはまるものを全て抽出したいです 7 2022/05/21 08:51
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Excel(エクセル) 【関数】【マクロ】データの転記の方法について 2 2023/07/26 15:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル初心者です 関数の入れ...
-
Microsoft1Officeの互換ソフト...
-
Excel ピボットテーブルで日付...
-
エクセル関数を教えてください
-
【マクロ】その時、その時で変...
-
【マクロ】読取専用のファイル...
-
LOOKUP関数を使えばいいのでし...
-
エクセル 白黒印刷で白線を印刷...
-
【関数】先頭だけにある、半角...
-
【関数】適切な文字数の数字を...
-
Excelのチェックボックスの使い...
-
エクセルでの作業計算方法について
-
Excelのpivotについて質問です
-
WPS OFFICEでの縦書きについて
-
時間によってファイル名が変わ...
-
エクセルのセルに同じ大きさの...
-
Aというブックの1というシート...
-
エクセルの順位別一覧表の自動...
-
西暦や和暦の表示をyyyymmdd表...
-
【マクロ】エクセルにかいてあ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報