こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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づつカウントアップします


非常に手間なような気がしてきましたが、
どなたかよろしくお願いいたします。

投稿日時 - 2005-12-21 20:46:41

QNo.1852371

すぐに回答ほしいです

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

原本シートを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

投稿日時 - 2005-12-21 21:39:39

お礼

ありがとうございます。

これが求めていたものです。
当方のつたない説明にもかかわらずご対応いただき恐縮です。
本当に助かりました。

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

投稿日時 - 2005-12-22 02:16:22

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

個人的にはワードへの差込印刷が容易のように思いますが、請け負いの処理であることから、VBAも使わず、エクセルのワークシート関数のみで考えてみました。

「原本シート」Sheet1
  A  B  C  D  E  F  G  H  I  J  K  L  M
───────────────────────────

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を使って一応確認してみました。
お確かめ下さい。


※縦の幅がずれてくると思いますので、メモ帳にでも貼り付けて確認して下さい。

投稿日時 - 2005-12-22 01:00:50

ANo.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 で見る限りは、上の図はズレていないはずです。
.

投稿日時 - 2005-12-21 22:13:35

ANo.2

えっと、前回の質問から思ってたのですが・・・。

Wordは、お持ちではないのでしょうか?
差し込み印刷ならあまり考えないで済むのですが・・・。

もしくは、

フリーのラベル印刷ソフトでも良さそうですが・・・。

Index関数で手間かけるよりね・・・。

投稿日時 - 2005-12-21 21:37:22

ANo.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行名簿の複数行化について悩んでます(続)」や、質問の文章は回答志願者を惑わせるようにおもう。

投稿日時 - 2005-12-21 21:32:36

あなたにオススメの質問