dポイントプレゼントキャンペーン実施中!

質問させていただきます。

エクセル2007にて名簿を作成しています。
シート1には氏名順で、それぞれ事業所、住所、電話番号が記載されています。
シート2以降には他に名簿に記載しなければいけない事項が記載してあり、
シート12に、A列には事業所順に、B列にはその事業所が記載されているページ数を入力して索引を作ろうと思っています。(事業所順は既に作成済みです)

シート12のB列にページ数を抽出する良い方法はないでしょうか。
シート1を一度印刷し、自分でめくりながら調べるつもりでしたが
事業所が300近くあるので簡単にできれば・・・
関数使用でもマクロ使用でもかまいません。

尚、1事業所に複数の人物がいる場合もありますが、
その場合はページ番号が若い人のページ数一つを拾ってもらえればかまいません。

似たような質問は他にもありましたが、どれも自分が求めているものとは違うようなので質問させていただきました。
よろしくお願いします。

A 回答 (6件)

 回答番号:ANo.5です。



>]1人につき、2行を使用しデータを入力しています。
>1行目に事業所名、2行目に住所を記入してあります。

 Sheet1のC列の2行目以下には、途中に事業所名と住所以外のデータが入力されているセルや、空欄は存在しないのでしょうか?
 つまり、Sheet1を印刷する際に、行のタイトルを指定して、1行目を繰り返しページの先頭に印刷する様にしているため、途中(2行目以下)に項目名を入力した行が現れる事や、空欄の行が現れる事は全く無いのでしょうか?

 もし、Sheet1のC列の2行目以下には、途中に事業所名と住所しか無い場合には、Sheet12のB2セルに次の数式を入力してから、Sheet12のB2セルをコピーして、Sheet12のB3以下に貼り付けると良いと思います。

=IF(COUNTIF(Sheet1!$C:$C,$A2)=0,"",ROUNDUP(MATCH($A2,Sheet1!$C:$C,0)/20,0))

 尚、今回はたまたま事業所のデータが始まっている行の行番号が、1人分のデータに使用する行数である2行以内になっているため、上記の様な数式で済ます事が出来ましたが、一般的には、データが任意の行番号であるm行目から始まっていて、1人分のデータが任意の行数であるn行あり、1ページには任意の人数であるo人のデータを印刷する場合には、次の様な数式になります。

=IF(COUNTIF(Sheet1!$C:$C,$A2)=0,"",ROUNDUP((MATCH($A2,Sheet1!$C:$C,0)-(m-1))/(n*o),0))
    • good
    • 0
この回答へのお礼

ご返事が大変遅くなってしまったことをお詫びします。

1行目を印刷タイトルに指定していますが、教えて頂いた通りの数式で見事やりたかった通りのことができました。
念のためですが、自分でページをめくって確認してみたところ、完璧でした。ありがとうございます。

質問段階で不足している点が多々とあり、大変ご迷惑をおかけしてしまい、申し訳ありませんでした。

お礼日時:2010/11/30 15:58

 どの列に何のデータが入力されていて、実際の事業所名のデータ(項目名が入力されている行は除く)は何行目から始まっているのか不明なため、以下の様な仮定に基づいた上での方法に関して回答させて頂きます。

(仮定と異なる場合には、どのように異なっているのか、詳細をお知らせ願います)

[仮定1]Sheet1のB列に事業所名が入力されている。

[仮定2]Sheet2のA列に事業所名が入力されている

[仮定3]Sheet1のB列において、実際の事業所名のデータは2行目から始まっている

[仮定4]Sheet1のB列の2行目以下には、途中に事業所名以外のデータが入力されているセルや、空欄は存在しない

[仮定5]1人あたりのデータを記述するために使用している行数は、1行のみである。

 以上の仮定が正しい場合には、Sheet2のB2セルに次の数式を入力してから、Sheet2のB2セルをコピーして、Sheet2のB3以下に(A列に事業所名が入力されている全ての行に)貼り付けると良いと思います。

=IF(COUNTIF(Sheet1!$B:$B,$A2)=0,"",ROUNDUP((MATCH($A2,Sheet1!$B:$B,0)-1)/10,0))

この回答への補足

ご返事が遅くなってしまい、申し訳ありません。

続けて、こちらの説明が足りなかったこともあわせて補足させていただきます。

[仮定1]厳密にはC列でした。
[仮定2]Sheet2ではなくSheet12です。(シート名を変更しているのでその部分はこちらで修正させていただきます。)
[仮定3]その通りです。

[仮定5]1人につき、2行を使用しデータを入力しています。
1行目に事業所名、2行目に住所を記入してあります。従って[仮定4]につきましても、C列に事業所名以外のデータが入力されているセルは存在しています。
(電話番号や、仕事内容についても記載する必要があり、印刷する関係上1行に収まらず、2行になってしまっています。)


質問する時に、これらの情報は記載しておくべきだったと反省しております。

補足日時:2010/11/26 12:45
    • good
    • 0

よくわからないので、仮定だらけですが…



・事業所名はシート1のB列に記載されている。
・ページ数とはシート1の1~10行が1ページ、11~20が2ページ…
・シート1の記載内容は1行目から開始している
・同じ事業所がある場合は若いページ番号を参照

であれば、シート12のB1セルに
 =INT((MATCH(A1,Sheet1!B:B,0)-1)/10)+1
を入れて、下にコピーフィル。(Sheet1はシート1の名前)

みたいな方法で可能だと思います。
(仮定がいっぱいなので、後はアレンジしてください)

この回答への補足

説明不足で申し訳ありません。

もっと単純に、印刷される場合の予測ページ数を抽出する方法があればいいな、と軽い気持ちで質問してしまいました。

一人につき2行を使用し、事業所名はその1行目に記入しておりまして(こちらも詳しく記入しておくべきでした)
1~20行が1ページ、21~40行が2ページとなっています。

それを踏まえた上で、教えていただいた関数をアレンジさせていただこうと思います。

ありがとうございました。

補足日時:2010/11/26 12:53
    • good
    • 0

業務のようですので、社内にいる詳しい人に聞いてみてください。


そのほうが確実と思います。

なんか質問を見る限りでは、代わりにやってくれる人を求めているように感じるんです。
もしも代わりにやってくれる人が現れた場合、さも質問者さんが問題を解決したような評価を受けると思います。
すると、次に同じような仕事を任されますよ。そしたらまた他人に頼りますか?
…それって問題の解決ではないと思います。(だって質問者さんが理解して問題を解決したのではないのですからね)

さて、本題
アドバイスとしては

   Access 2007 を使いましょう

となります。
    • good
    • 0
この回答へのお礼

改めて自分の文書を読むとそのように受け取られてしまうような発言でした。
うっかり、というべきか読み直してから投稿するべきだったと反省しております。

PC関係に特化していない小さな会社ですので、詳しい方がいないのが現状です。

アクセスに関しては、あまり手をつける機会がなかったので失念しておりました。
その索引以外はエクセルにて作成してしまったので次回からは活用させていただこうと思います。

お礼日時:2010/11/25 14:30

やりたいことがイマイチ分かりません。

シート1にはたとえば、1行目に鈴木 ○○事業所 住所 電話 2行目に佐藤 ○○事業所 住所 電話 3行目に田中 △△事業所 住所 電話とあるのでしょうか?それが300行あると言う事ですか?
事業所のページというのは何でしょうか?シート番号じゃないですよね。その人の書いてある行数の事でもないですよね?
事業所のページと言うのが理解できないのですけど。
たとえばシート3に○○事業所 1ページ △△事業所 1ページ □□事業所 2ページというのがあるのでしょうか?
だとしたらシート1の事業所名からシート3にあるページ数を引いてくると言うのはできますが・・・・
それで良いのか分かりませんし。
この質問ではそれが分かりません。事業所のページというのがどこのことをさしているのか分からないと誰も答えられないと思いますけど。

この回答への補足

失礼しました、言葉足らずでした。

シート1に関しては1ページに10人はいるように、印刷を前提としております。

補足日時:2010/11/25 14:13
    • good
    • 0

フィルター機能を使ってはいかがでしょう。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!