- ベストアンサー
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づつカウントアップします 非常に手間なような気がしてきましたが、 どなたかよろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
原本シートを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
その他の回答 (4)
- kamejiro
- ベストアンサー率28% (136/479)
個人的にはワードへの差込印刷が容易のように思いますが、請け負いの処理であることから、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)
こんばんは。 私も、前回から見ていた一人ですが、前回、さっぱり希望する結果が見えなかったということがあります。もし、前回の質問も、こういう形を希望されていたとしたら、永久的に解答には至らなかったと思いますし、現在の形も、もうひとつ良く分りません。 >「印刷用」シート(一部セル結合あります) 結合セルは、どこにあるのですか? 回答者さんが、結合セルが定まらないのでは、解決はおぼつかないと思います。 もう少し、図がきちんとしていたら、もう少し救われるものがあると思います。 ただ、こういう状況ですと、おそらく、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)
えっと、前回の質問から思ってたのですが・・・。 Wordは、お持ちではないのでしょうか? 差し込み印刷ならあまり考えないで済むのですが・・・。 もしくは、 フリーのラベル印刷ソフトでも良さそうですが・・・。 Index関数で手間かけるよりね・・・。
- imogasi
- ベストアンサー率27% (4737/17070)
これは本来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行名簿の複数行化について悩んでます(続)」や、質問の文章は回答志願者を惑わせるようにおもう。
お礼
ありがとうございます。 これが求めていたものです。 当方のつたない説明にもかかわらずご対応いただき恐縮です。 本当に助かりました。 この場を借りて、他の回答者様へもお礼申し上げます。 請け負い仕事であり、#5様のおっしゃるように、 エクセルでかつワークシート関数のみでの対応が必要でした。 このレベルまではなんとか関数で対応しておかないと、 納品時に支障があり、皆様には難解な質問となったことお詫びいたします。