>基準をもとに基準に印がついている場合のみ選択し、基準に印がある場合は、※1をシート1のA1に自動で持ってこれないかと思案しています。
確認したいのですが、基準の「●」は客先が入力したもので、目印とするために質問者様が後から追加したものではない訳ですね?
それでしたら以下の様な方法は如何でしょうか?
まず、「客先から送られて来たエクセルデータ」をコピーして、適当なシート(ここでは仮にSheet1とします)に、「※1」という項目名がA1セルに来る様に、(横並びのままで)貼り付けて下さい。
次に、別の適当なシート(ここでは仮にSheet3とします)のA1セルに、次の関数を入力して下さい。(以下は、基準の「●」がF列に入力されている場合の関数です)
=IF(INDEX(Sheet1!$F:$F,ROW())="●",COUNTIF(Sheet1!$F$1:INDEX(Sheet1!$F:$F,ROW()),"●"),"")
次に、Sheet3のA1セルをコピーして、Sheet3のA2以下に貼り付けて下さい。
次に、また別の適当なシート(ここでは仮にSheet2とします)のA1以下に※1~※6の必要とする項目名を、「並べたい順番に」入力して下さい。
次に、Sheet2のB1セルに、次の関数を入力して下さい。
=IF(ISERROR(1/(HLOOKUP(INDEX($A:$A,ROW()),OFFSET(Sheet1!$1:$1,,,MATCH("*?",Sheet1!$A:$A,-1)-ROW(Sheet1!$A$1)+1),MATCH(COLUMNS($B:B),Sheet3!$A:$A,0)-ROW(Sheet1!$A$1)+1,FALSE)<>"")),"",HLOOKUP(INDEX($A:$A,ROW()),OFFSET(Sheet1!$1:$1,,,MATCH("*?",Sheet1!$A:$A,-1)-ROW(Sheet1!$A$1)+1),MATCH(COLUMNS($B:B),Sheet3!$A:$A,0)-ROW(Sheet1!$A$1)+1,FALSE))
次に、Sheet2のB1セルをコピーして、Sheet2において並べ替えた結果を表示させねばならない全てのセルに貼り付けて下さい。(添付画像の例ではB1:J6のセル範囲に貼り付け)
これで、Sheet1に「客先から送られて来たエクセルデータ」を貼り付けるたびに、自動的にF列に「●」がある行のみを抽出して、縦横を並べ替えた結果がSheet2に表示されます。
お礼
はい。 客先がつけているマークです。 再チャレンジしてみます。(^^) ありがとうございます。 また、結果報告しますね。
補足
出来ました(^^) たすかりました。 ありがとうございます。