• ベストアンサー

1行名簿の複数行化について悩んでます(続)

いろいろ教えていただいたのですが、やっぱりよくわからず、助けを求めて再掲示です。 ほんとバカですいません(泣 質問内容を少し変えました。 <質問内容> 「原本」シートの1行データ内容を、 別シート「印刷用」に4行表示する関数を組んでいただけませんか。 (※下方向にドラッグしてコピーしても構成が変わらないように) セル番号(全て原本シートのセル番号)で説明させていただきます。 「原本」シートの1行顧客データを、 「印刷用」シートに以下のように、 「原本」シートのセル番号の値を参照していき、 4行データ化したいのです。 「原本」シート +-------------------------------+ ¦B2¦C2¦D2¦E2¦F2¦G2¦H2¦I2¦J2¦K2¦L2¦M2¦N2¦ +-------------------------------+ ↓ 「印刷用」シート(一部セル結合あります) +----------------+ ¦B2¦E2¦C2¦H2  ¦F2¦N2 ¦ +    --    ----       + ¦  ¦D2¦  ¦G2  ¦  ¦   ¦ +           ----       + ¦  ¦  ¦  ¦I2¦J2¦  ¦   ¦ +    --    ----       + ¦  ¦K2¦  ¦L2¦M2¦  ¦  ¦ +----------------+ ※2件目以降のデータは全て行番号のみ1づつカウントアップします 非常に手間なような気がしてきましたが、 どなたかよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • s_yoshi_6
  • ベストアンサー率73% (1113/1519)
回答No.3

原本シートをSheet1とした場合に、印刷用シートでB2~N2の値が入るセルに、それぞれ次のように入力します。 B2→=INDIRECT("Sheet1!B"&(ROW($A2)+6)/4) C2→=INDIRECT("Sheet1!C"&(ROW($A2)+6)/4) … N2→=INDIRECT("Sheet1!N"&(ROW($A2)+6)/4) (単に「Sheet1!」の後の1文字を書き直しただけです。テキストコピーしてそこだけ修正されると良いでしょう。なお$A2というセル番地は2行目のセルであればB2でもC2でも構いません) あとはその4行をコピーして以下の行に貼り付けてください。 P.S. 先の質問は、新しく質問し直した旨を報告されて、締め切られた方が良いと思います。前の回答者の方が新しい質問を知らずに追加回答された場合に、せっかくの回答が無駄になってしまう可能性があります。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1850386

aces_p
質問者

お礼

ありがとうございます。 これが求めていたものです。 当方のつたない説明にもかかわらずご対応いただき恐縮です。 本当に助かりました。 この場を借りて、他の回答者様へもお礼申し上げます。 請け負い仕事であり、#5様のおっしゃるように、 エクセルでかつワークシート関数のみでの対応が必要でした。 このレベルまではなんとか関数で対応しておかないと、 納品時に支障があり、皆様には難解な質問となったことお詫びいたします。

その他の回答 (4)

  • kamejiro
  • ベストアンサー率28% (136/479)
回答No.5

個人的にはワードへの差込印刷が容易のように思いますが、請け負いの処理であることから、VBAも使わず、エクセルのワークシート関数のみで考えてみました。 「原本シート」Sheet1   A  B  C  D  E  F  G  H  I  J  K  L  M ─────────────────────────── 1 2   B2 C2 D2 E2 F2 G2 H2 I2 J2 K2 L2 M2 3   B3 C3 D3 E3 F3 G3 H3 I3 J3 K3 L3 M3     … … … … … … … … … … … … の形式で、ここでは100行までデータがある前提で考えます。 「印刷用シート」Sheet2   A   B  C  D  E  F  G  H  I ─────────────────────────── 1 0     1  4  2  7    5 13 2 0.25     3    6 3 0.5          8  9 4 0.75   10     11 12 のように数値を入力します。次に =INT関数を用いて、B1に「=INT(A1)」を入れ、B4までドラッグします。 B1からB4には0が入ります。 5行目以降ですが、 A列、B列併せてドラッグします。   A   B  C  D  E  F  G  H  I ─────────────────────────── 5 1   1 6 1.25 1 7 1.5  1 8 1.75 1 となります。   A   B  C  D  E  F  G  H  I ─────────────────────────── 5 1   1 B2 E2 C2 H2   F2 N2 6 1.25  1   D2   G2 7 1.5  1       I2 J2 8 1.75  1 K2     L2 M2 というふうに関連付けをさせるので、C5には、 「=INDEX(Sheet1!$B$2:$M$100,B5,$C$1)」 D5には、 「=INDEX(Sheet1!$B$2:$M$100,B5,$D$1)」 と入れます。同様にD6なら、 「=INDEX(Sheet1!$B$2:$M$100,B6,$D$2)」 あと残り=INDEX関数を個々に入力します。 セルの結合が必要なら、その後で個々に結合します。 ここまでの面倒な手順を終えたら、A5からI8までを領域選択し下方向へドラッグします。 以上、エクセル2000を使って一応確認してみました。 お確かめ下さい。 ※縦の幅がずれてくると思いますので、メモ帳にでも貼り付けて確認して下さい。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 私も、前回から見ていた一人ですが、前回、さっぱり希望する結果が見えなかったということがあります。もし、前回の質問も、こういう形を希望されていたとしたら、永久的に解答には至らなかったと思いますし、現在の形も、もうひとつ良く分りません。 >「印刷用」シート(一部セル結合あります) 結合セルは、どこにあるのですか? 回答者さんが、結合セルが定まらないのでは、解決はおぼつかないと思います。 もう少し、図がきちんとしていたら、もう少し救われるものがあると思います。 ただ、こういう状況ですと、おそらく、VBAのほうが簡単だと思います。今のところ、私は、VBAの解決しか考えておりません。ただし、現在の状況では、最初のセル位置も分らないのです。 ※画面を広げてご覧下さい。そして、このどこに結合セルはあるというのでしょうか? <図の見本> こちらの予想:別シートのB1 から始まる。        結合セルは、E1-F1 / E5-F5 にある。 「原本シート」  B2  C2  D2  E2  F2  G2  H2  I2  J2  K2  L2  M2  B3  C3  D3  E3  F3  G3  H3  I3  J3  K3  L3  M3         ↓ 「印刷用シート」  A  B   C   D   E   F  G  H ──────────────────── 1   B2  E2  C2  H2     F2  N2 2      D2     G2  3            I2  J2   4      K2     L2     M2   -------------------------------------(便宜的に入れた) 5   B3  E3  C3  H3     F3  N3 6      D3     G3  7            I3  J3   8      K3     L3  M3   -------------------------------------- IE6 で見る限りは、上の図はズレていないはずです。 .

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.2

えっと、前回の質問から思ってたのですが・・・。 Wordは、お持ちではないのでしょうか? 差し込み印刷ならあまり考えないで済むのですが・・・。 もしくは、 フリーのラベル印刷ソフトでも良さそうですが・・・。 Index関数で手間かけるよりね・・・。

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.1

  これは本来VBA向けの問題です。 原本の全行に連続番号を振りましょう。   原本シートの名前を「原本」とする。   印刷用シートの適当なセル(A1とする)番号を入力する。 (原本シートの何行目のデータを使うかの行番号的な数を入れるためのセルです) 原本シートのB2のデータを入れる印刷用シートのセルに =VLOOKUP($A$1,原本!$A$1:$N$100,2,FALSE) と入れる。2はB列です。 C2を取るセルの式は、ここ(第3引数)を3にします。 以下同じ類推で入れてください。 A1を2といれると、2行目のデータで印刷用シートのデータが 置き換わります。 A1を変えるごとに、印刷してください。 すると、原本1行が、1枚づつの票(表・ページ)として印刷できるでしょう。 こういうものを望んでいるのではないですか。 これの印刷自動化はVBAになります。今はここまでにします。 上記のことなら(勘違いならすみません)、表題「1行名簿の複数行化について悩んでます(続)」や、質問の文章は回答志願者を惑わせるようにおもう。

関連するQ&A