
No.3ベストアンサー
- 回答日時:
No1です。
>大変図々しいですが、VBAも教えてもらえますか?
方法はいろいろあると思いますが、以下は一例です。
※ D2以降に記入するだけの処理にしてありますので、事前にクリア等
が必要なら追加してください。
※ また、担当名は出現順となりますので、並べ替え等が必要な場合は
追加してください。
Sub Q13022513()
Dim d, v, tmp, t, r As Range
Dim i As Long, j As Long, sep As String
sep = Chr(27)
Set r = Range(Cells(2, 1), Cells(Rows.Count, 2).End(xlUp))
If r(1).Row < 2 Then Exit Sub
v = r.Value
Set d = CreateObject("Scripting.Dictionary")
For i = LBound(v) To UBound(v)
tmp = Split(v(i, 2), ",")
For j = LBound(tmp) To UBound(tmp)
t = Trim(tmp(j))
If t <> "" Then
If d.Exists(t) Then d(t) = d(t) & sep & v(i, 1) Else d.add t, v(i, 1)
End If
Next j
Next i
Set r = Cells(2, 4)
v = d.keys
For i = LBound(v) To UBound(v)
t = Split(v(i) & sep & d(v(i)), sep)
r.Resize(, UBound(t) + 1).Value = t
Set r = r.Offset(1)
Next i
End Sub
No.6
- 回答日時:
失礼しました。
EXCEL2019で検証し、送信時のPCが2013を使用し式をコピペしたので、
_xlfn.TEXTJOINとなっていました。
TEXTJOINが正です。配列数式なのでCtr+Shift+Enterで式確定をしてください。
D2=LEFT(TEXTJOIN("\",1,REPT(IFERROR(MID($B$2:$B$5,FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5)))),FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5))+1))-FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5))))-1),""),COUNTIF($D$1:D1,IFERROR(MID($B$2:$B$5,FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5)))),FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5))+1))-FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5))))-1),""))=0))&"\",FIND("\",TEXTJOIN("\",1,REPT(IFERROR(MID($B$2:$B$5,FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5)))),FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5))+1))-FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5))))-1),""),COUNTIF($D$1:D1,IFERROR(MID($B$2:$B$5,FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5)))),FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5))+1))-FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5))))-1),""))=0))&"\")-1)1),""))=0))&"\")-1)
No.5
- 回答日時:
№4です。
先の回答はABC、あいう等の1文字しか対応していなかったので、実務に合わせた数式を頭を捻って考えました。EXCEL2019以降に対応します。大変長いです。
TRANSPOSE(ROW($1:$5))の数式部分は担当欄がMaxで5名までを意味します。
D2=LEFT(_xlfn.TEXTJOIN("\",1,REPT(IFERROR(MID($B$2:$B$5,FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5)))),FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5))+1))-FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5))))-1),""),COUNTIF($D$1:D1,IFERROR(MID($B$2:$B$5,FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5)))),FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5))+1))-FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5))))-1),""))=0))&"\",FIND("\",_xlfn.TEXTJOIN("\",1,REPT(IFERROR(MID($B$2:$B$5,FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5)))),FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5))+1))-FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5))))-1),""),COUNTIF($D$1:D1,IFERROR(MID($B$2:$B$5,FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5)))),FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5))+1))-FIND("♪",SUBSTITUTE(","&$B$2:$B$5&",",",","♪",TRANSPOSE(ROW($1:$5))))-1),""))=0))&"\")-1)
配列確定(Ctr+Shift+Enter)し、下へフィルコピー
No.4
- 回答日時:
D列を自動作成する数式になります。
(ローテクで長いです)D1=CHAR(MIN(INDEX(CODE(MID(
SUBSTITUTE($B$2:$B$5,",",""),
ROW(OFFSET($A$1,,,,LEN(SUBSTITUTE($B$2:$B$5,",","")))),
1)),0)))
D2=IF(ISNA(INDEX(MID(
SUBSTITUTE($B$2:$B$5,",",""),
ROW(OFFSET($A$1,,,,LEN(SUBSTITUTE($B$2:$B$5,",","")))),
1),MATCH(0,COUNTIF(D$2:D2,"="&MID(
SUBSTITUTE($B$2:$B$5,",",""),
ROW(OFFSET($A$1,,,,LEN(SUBSTITUTE($B$2:$B$5,",","")))),
1)),0))),"",INDEX(MID(
SUBSTITUTE($B$2:$B$5,",",""),
ROW(OFFSET($A$1,,,,LEN(SUBSTITUTE($B$2:$B$5,",","")))),
1),MATCH(0,COUNTIF(D$2:D2,"="&MID(
SUBSTITUTE($B$2:$B$5,",",""),
ROW(OFFSET($A$1,,,,LEN(SUBSTITUTE($B$2:$B$5,",","")))),
1)),0)))
配列確定(Ctr+Shift+Enter)し、下へフィルコピー
No.2
- 回答日時:
PowerQueryでやればいいと思いますけど。
担当列をカンマ指定で列の分割
分割した列を選択して列のピボット解除
値列で行のグループ化
グループ化したテーブルにインデックス列を追加
グループ列から品名・インデックス列を展開
インデックス列を指定して列のピボット(値列「品名」で集計はしない)
インデックス列の追加以外は機能を選択するだけでできます。
インデックス列は行のグループ化の時に「each _」を
「each Table.AddIndexColumn(_, "インデックス", 1, 1)」に
変更すればいいです。

「PowerQuery」
すぐに使える環境がなかったので、まだ確認できていませんが、
是非時間を作ってPowerQueryを身に着けたいと思いました。
ありがとうございます。
No.1
- 回答日時:
こんにちは
ご提示のレイアウトで、E2セルに
=IFERROR(IF($D2="","",INDEX($A:$A,AGGREGATE(15,6,ROW(A$2:A$6)/NOT(ISERROR(FIND($D2,$B$2:$B$5))),COLUMN(A1)))),"")
の式を入力し、右方、下方にフィルコピー。
では、いかがでしょうか?
※ D列も自動作成したいような場合は、関数で行うよりも、VBAの方が簡単だと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 2列のエクセルの表を変更したい 2 2022/06/30 10:39
- その他(OS) Windowsで大量の画像サイズを半自動で変更する方法 6 2023/02/17 08:45
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
- PowerPoint(パワーポイント) ExcelのグラフをPowerPointに貼り付けした際にデータテーブルの小数点以下を削除したいです 2 2023/02/28 19:46
- その他(Microsoft Office) マイクロソフトオフィス 5 2023/07/29 14:31
- Excel(エクセル) 【至急 詳しい方教えて下さい】Excelの表を変換したい 6 2022/04/21 18:35
- Excel(エクセル) Excel ピボットテーブルの表示方法を変更したいのですが、、、(合計値を下部に) 3 2023/06/18 21:10
- Excel(エクセル) エクセルの折れ線グラフで教えて下さい 1 2023/03/05 22:48
- ホームページ作成・プログラミング さくらサーバーに置いているホームページを改修したいです 2 2022/11/06 17:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセルのdatedif関数を使って...
-
エクセルのVBAで集計をしたい
-
【マクロ】【配列】3つのシー...
-
特定のセルだけ結果がおかしい...
-
エクセル ドロップダウンリスト...
-
【マクロ】列を折りたたみ非表...
-
vba テキストボックスとリフト...
-
【関数】同じ関数なのに、エラ...
-
ページが変なふうに切れる
-
【条件付き書式】シートの中で...
-
【マクロ】オートフィルターの...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【マクロ】3行に上から下に並...
-
エクセルの循環参照、?
-
【マクロ】A列にある、日付(本...
-
iPhoneのExcelアプリで、別のシ...
-
エクセル
-
【マクロ】WEBシステムから保存...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報
ありがとうございます!出来ました!
AGGREGATE関数、知りませんでした。。。
あとで頑張って読み解きます。
そうなんです。
D列も自動作成できればもっと有難いです!
大変図々しいですが、VBAも教えてもらえますか?