至急!! Excel VBA 関数 助けてください 氏名 商品名 価格 A 〇 300 A × 400 A △ 500

Excel | Visual Basic81閲覧xmlns="http://www.w3.org/2000/svg">100

1人が共感しています

ベストアンサー

0
画像

ThanksImg質問者からのお礼コメント

ありがとうございました!

お礼日時:5/1 17:06

その他の回答(3件)

0

こんにちは。 参考でのご提案です。 パワークエリ、ピボットテーブル、メジャーを使った方法です。 元データをパワークエリで読み込む 氏名のデータごとに連番を振る、データモデルに追加する 読み込んだデータモデルでピボットテーブルで表示 価格は、集計で表示 商品名は、文字列を表示 ピボットテーブルなので、データが増えても自動で縦横拡張されます。 https://twitter.com/sk19129183/status/1388119788371668995?s=20 パワークエリはExcel2016,365なら標準機能です。 以上よろしくお願いいたします。

画像
1

添付参照 D2に =A2&"-"&COUNTIF(A$2:A2,A2) といれ 下にオートフィル これで 氏名毎に連番が つきます。 そこで 添付中央の表の場合 B3に =IFERROR(INDEX(Sheet1!$B:$B,MATCH($A3&"-"&INT(COLUMN(B1)/2),Sheet1!$D:$D,0)),"") C3に =IFERROR(INDEX(Sheet1!$C:$C,MATCH($A3&"-"&INT(COLUMN(C1)/2),Sheet1!$D:$D,0)),"") B3:C3を 選択して 右にオートフィル B3:K3を 選択して下にオートフィル これで 中央の表になります。 ただ 私は 一番下の表の方が 見やすいかと この場合 C3に =IFERROR(INDEX(Sheet1!$B:$B,MATCH($A3&"-"&COLUMN(A1),Sheet1!$D:$D,0)),"") D3に =IFERROR(INDEX(Sheet1!$C:$C,MATCH($A3&"-"&COLUMN(A1),Sheet1!$D:$D,0)),"") C3:D3を 下にオートフィル C3:C6を 右にオートフィル これで 下の表になります。

画像

1人がナイス!しています

1

元の表がシート1に有るとしてA列からC列までの表で1行目には氏名、商品芽、価格の項目名が有り2行目から下方にお示しのようなデータが有るとします。 作業列を作って対応します。G2セるには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,ROUNDDOWN(MAX(G$1:G1),-3)+1000,INDEX(G$1:G1,MATCH(A2,A$1:A1,0))+COUNTIF(A$1:A1,A2))) お求めの表をシート2に作るとしてA1セルには氏名、B1セルから横方向には商品名、価格が交互に並んだ表とします。 A2セルには次の式を入力して横方向にドラッグコピーしたのちに下方向にもドラッグコピーすればよいでしょう。 =IFERROR(INDEX(Sheet1!$A:$A,MATCH(ROW(A1)*10^3,Sheet1!$G:$G,0)),"")

1人がナイス!しています