- ベストアンサー
エクセル2007 形式の全く違う表の編集
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
今仮に、上の表で「あ」が入力されているセルがSheet1のB3セルであり、同じく下の表で「あ」が入力されているセルがSheet2のB2セルであるものとします。 まず、Sheet2のA2セルに次の数式を入力して下さい。 =IF(COUNT(Sheet1!$A:$A),MIN(Sheet1!$A:$A),"") 次に、Sheet2のA3セルに次の数式を入力して下さい。 =IF(COUNTIF(A$1:A2,MAX(Sheet1!$A:$A))>=COUNTIF(OFFSET(Sheet1!$B$2:$G$2,MATCH(MAX(Sheet1!$A:$A),Sheet1!$A:$A,0)-ROW(Sheet1!$B$2),),"*?"),"",SMALL(Sheet1!$A:$A,COUNTIF(Sheet1!$A:$A,"<"&MAX(A$1:A2))+1+(COUNTIF(A$1:A2,A2)>=COUNTIF(OFFSET(Sheet1!$B$2:$G$2,MATCH(A2,Sheet1!$A:$A,0)-ROW(Sheet1!$B$2),),"*?")))) 次に、Sheet2のA2セルとA3セルの書式設定の表示形式を、[日付]として下さい。 次に、Sheet2のB2セルに次の数式を入力して下さい。 =IF(ISNUMBER(1/COUNTIF(OFFSET(Sheet1!$B$2:$G$2,MATCH($A2,Sheet1!$A:$A,0)-ROW(Sheet1!$A$2),),"*?")),INDEX(Sheet1!$B:$G,MATCH($A2,Sheet1!$A:$A,0),SUMPRODUCT(1*(COUNTIF(OFFSET(Sheet1!$A$2,MATCH($A2,Sheet1!$A:$A,0)-ROW(Sheet1!$A$2),1,1,COLUMN(Sheet1!$B$2:$G$2)-COLUMN(Sheet1!$A$2)),"=*?")<COUNTIF($A$1:$A2,$A2)))+1),"") 次に、Sheet2のC2セルに次の数式を入力して下さい。 =IF(ISNUMBER(1/COUNTIF(OFFSET(Sheet1!$B$2:$G$2,MATCH($A2,Sheet1!$A:$A,0)-ROW(Sheet1!$A$2),),"*?")),INDEX(Sheet1!$B$2:$G$2,SUMPRODUCT(1*(COUNTIF(OFFSET(Sheet1!$A$2,MATCH($A2,Sheet1!$A:$A,0)-ROW(Sheet1!$A$2),1,1,COLUMN(Sheet1!$B$2:$G$2)-COLUMN(Sheet1!$A$2)),"=*?")<COUNTIF($A$1:$A2,$A2)))+1),"") 次に、Sheet2のB2~C2の範囲をコピーして、Sheet2のB3~C3の範囲に貼り付けて下さい。 次に、Sheet2のA3~C3の範囲をコピーして、同じ列の4行目以下に貼り付けて下さい。 以上です。
その他の回答 (1)
- yosifuji20
- ベストアンサー率43% (2675/6115)
下の表は、それぞれのセルに入れる内容や式と元の上の表のデータの位置の関係が一定ではありませんね。 通常はExcelの式は参照する相手のデータの場所が決まっていることが前提です。 この処理はマクロを使えばできると思いますが、かなり面倒です。 あとはACCESSをご存知ならば可能と思います。 でも簡単な式だけでは無理ではないでしょうか。 ここで裏技的な方法を考えるよりは、元の表とそれを集約する下の表の形式を考え直したほうが簡単な気がしますが。 再度このデータの目的を考えて、EXCELで容易に作れる形を考えてみませんか。
お礼
やはり難しいのですね。。。。。 おっしゃるように根本から変えられたらいいのですが、なかなか難しい状況です><
お礼
す、すごいです・・・・・・・・・・・・・・・・。 できました。。。 ものすごく助かりました。感動すら覚えます。 本当にありがとうございました!!!!