- 締切済み
差し込み印刷用のデーターを作る
差し込み印刷用のデーターを作る 「エクセル1」のようなフォーマットのデータを「エクセル2」のようなフォーマットに変換したいと思います。 差し込み印刷用のデータを作りたいのですが、データが沢山あり、手作業(コピー&ペースト)では膨大な時間がかかってしまうので、大変困っています! もしお分かりになる方がいらっしゃいましたら、よろしくお願いします。 <エクセル1> 列A------列B 1-------りんご 空白-----みかん 空白-----もも 2-------なし 空白-----ぶどう 空白-----もも 空白-----みかん 3-------みかん 空白-----もも 空白-----りんご ↓↓↓ <エクセル2> 列A------列B----列C----列d----列e 1-------りんご--みかん--もも 2-------なし----ぶどう--もも--みかん 3-------みかん--もも----りんご
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答2です。 シート1でC2セルに入力する式を間違いていました。次のようにしてください。 =IF(B2="","",IF(A2<>"",A2+COUNTA(INDEX(B:B,MATCH(A2,A:A,0)):B2)*0.0001,IF(A2="",C1+0.0001)))
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート1にエクセル1の表があるとして1行目は項目名があり、2行目からお示しのデータがあるとします。 C列は作業列としてC2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B2="","",IF(A2<>"",A2+COUNTA(INDEX(B:B,MATCH(A2,A:A,0)):B2)*0.0001,IF(A2="",D1+0.0001))) シート2はお求めの表を作るとして1行目には項目名を入れ、A2セルには次の式を入力して横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF(COUNTIF(Sheet1!$A:$A,ROW(A1))=0,"",IF(COLUMN(A1)=1,ROW(A1),IF(COUNTIF(Sheet1!$C:$C,ROW(A1)+(COLUMN(A1)-1)*0.0001)=0,"",INDEX(Sheet1!$B:$B,MATCH(ROW(A1)+(COLUMN(A1)-1)*0.0001,Sheet1!$C:$C,0)))))
- kagakusuki
- ベストアンサー率51% (2610/5101)
元の「エクセル1」のフォーマットで作成されているシートを、「エクセル2」のフォーマットに作り換えるのではなく、関数を使って、別のシートに「エクセル2」のフォーマットで、自動的に表示させる方法では駄目でしょうか。 例えば、「エクセル1」のリストがSheet1の3行目から始まっていて、そのデータをSheet2の2行目以下に、「エクセル2」のフォーマットで表示させる場合には、次の様にすると良いと思います。 まず、Sheet2のA2セルに次の数式を入力して下さい。 =IF(ROWS($2:2)>COUNT(Sheet1!$A:$A)-COUNT(Sheet1!$A$1:$A$2),"",SMALL(Sheet1!$A:$A,ROWS($2:2))) 次に、Sheet2のB2セルに次の数式を入力して下さい。 =IF($A2="","",IF(COLUMNS($B:B)>IF(ROWS($2:2)=COUNT($A:$A),COUNTA(Sheet1!$B:$B)-COUNTA(Sheet1!$B$1:$B$2)+ROWS(Sheet1!$B$1:$B$3),MATCH($A3,Sheet1!$A:$A,0)-MATCH($A2,Sheet1!$A:$A,0),"",INDEX(Sheet1!$B:$B,MATCH($A2,Sheet1!$A:$A,0)+COLUMNS($B:B)-1))) そして、Sheet2のB2セルをコピーして、Sheet2のC2から右にあるセルに貼り付けて下さい。 それから、Sheet2の2行目全体をコピーして、3行目以下の行に貼り付けて下さい。 これでSheet2には、Sheet1のデータが、「エクセル2」のフォーマットで表示されると思います。 尚、 Sheet1のB列の途中に空欄になっているセルが存在する場合には、Sheet2の対応するセルには0が表示されてしまいますので、次の様に設定して、数値が0の場合は表示が行われない様にして下さい。 メニューの[ツール]ボタンをクリック ↓ 選択肢の[オプション]をクリック ↓ 「オプション」ウィンドウの「表示」タグをクリック ↓ 「ウィンドウオプション」という項目内にある「ゼロ値」のチェックマークを外す ↓ 「オプション」ウィンドウの[OK]ボタンをクリック それと、「エクセル1」のフォーマットで作成されているシートが複数ある場合には、次の様な方法があります。 まず、Sheet2をコピーしたシートを、必要な数だけ作って下さい。 次に、コピーシートの全セルを選択(A1セルの左上にある、行番号欄と列番号欄が交差する長方形をクリックする) ↓ メニューの[編集]ボタンをクリック ↓ 選択肢の[置換]をクリック ↓ 「検索と置換」ウィンドウの「置換」タグをクリック ↓ 「検索する文字列」の欄に「Sheet1」と入力する ↓ 「置換後の文字列」の欄に、「エクセル1」のフォーマットで作成されている別のシート名を入力する ↓ [すべて置換]ボタンをクリック ↓ [閉じる]ボタンをクリック ↓ 次のコピーシートを開いて、同様の操作を繰り返す 以上