プロが教えるわが家の防犯対策術!

請求書を100枚以上作りたいのですが、別シートで管理している名前又は番号(A列に入力)を引用して今回コピーで沢山作るエクセルシートの名前に表示させることは難しいでしょうか?
別シートはA列に相手先の名称が入力されていてB列には金額が入力されているイメージです。

数枚の時は右クリックで名前の変更をしていましたが・・新たに作ろうと思っている請求書は枚数が多いので別管理の情報と上手くリンク出来たら・・と思っています。
エクセルがあまり得意でないので、よろしくお願い致します。

質問者からの補足コメント

  • 説明が下手で申し訳ありません。イメージサンプルを添付します。
    Sheet1に管理表としてA列に通し番号・B列に顧客名・C列に金額をいれた表を作っておきます。
    Sheet2には請求書の原本を作り、ctrlで右スライドしてSheet2(1)、Sheet2(2)・・とコピーを作りました。しかし、そのままでは見づらいのでSheet2(1)、Sheet2(2)・・が顧客ごとの通し番号が表示されるようにしたいと思っています。できればSheet1の管理表の修正だけで顧客ごとの名称と金額も表示されて請求書が仕上がれば最高なのですが・・
    今までは右クリックで名前の変更をして顧客名・金額をシート毎に入れていましたが、件数が多くなり請求明細を変更するので何か良い方法があれば・・と悩んでいます。

    「エクセルシートの名前変更を別のシートデー」の補足画像1
      補足日時:2017/03/19 18:10
  • Sheet2の請求書(画像は領収書になっていますが・・・)原本のサンプル

    「エクセルシートの名前変更を別のシートデー」の補足画像2
      補足日時:2017/03/19 18:12

A 回答 (5件)

つまり、「1」というシートを作った場合に、「りんご」と「5000」を表示させたいわけですね?


シート名については関数でどうこうできるものではありませんので、VBAで可能か調べてみてください。
シート名から対応するデータを取得するには、そのシートの名前が何であるかを取得する必要があります。

=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))
とすればその式を入力したシートの名前が取得できるハズです。
(ExcelOnlineでは対応していない関数とのことですので、こちらでは確認できません)

これを用いてVLOOKUPでデータを取得しましょう。
顧客名を表示させたいセル=VLOOKUP(RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename"))),Sheet1!A:C,2,FALSE)
金額を表示させたいセル=VLOOKUP(RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename"))),Sheet1!A:C,3,FALSE)
とすれば、シート名に応じたデータを表示してくれるはずです。

シート名を変えるのが面倒であれば、むしろ「通し番号」というシートを原本として、
通し番号(1),通し番号(2)…というシート名にするのはどうでしょう?
Sheet1のA列は「="通し番号("&ROW()&")"」とする事で、その行に応じて()内の数字を入れてくれますよ。
    • good
    • 0
この回答へのお礼

シート名は無事にご提案の様にする事で検索しやすくなりました。
VLOOKUP・・初めて使うので変更するところを教えていただけると助かります。
顧客名を入れたいセルに教えていただいた数式をコピペして・・filenameを管理表としているSheet1に変更して・・
と、やってみているのですが上手く表示されません。
本当に基本的なことがわかっていなさすぎて・・スミマセン。

お礼日時:2017/03/19 21:10

ふむ。

#N/Aというのは、該当するデータが無い時のエラーですね。
=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))
ではどういう表示が出ますか?
=CELL("filename")
ではどうですか?
これについては先日も書きましたが、ExcelOnlineでは使えないとのことで、動作確認ができません。
シート名を取り出す式はネットで検索して見つけたものをそのまま使わせてもらってます。
下側の表示がエラーであれば、こちら同様使えない環境なのかもしれません。
下側はきちんと表示されて、上側でシート名を表示させるのがミスしている場合は、式を修正することで対応できると思います。
    • good
    • 0
この回答へのお礼

色々丁寧に教えていただきありがとうございました。
No.3の方法で無事に一部表示されるようになりました。
でも、やりたい事と私自身の知識があまりにもかけ離れているので・・・
上手に応用をできない状況に行き着いてしまいました。
私の理解が微妙に間違っているので、一部のみの表示でしかできないのですが・・・
教えていただいた式で確かに表示されるようです。

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

お礼日時:2017/03/21 20:14

"filename"というのは、ファイルの名前を抽出するという意味ですので、そのまま"filename"と入力してくださいね。


VLOOKUPは
VLOOKUP(検索値,検索範囲,表示するデータの位置(検索範囲の左端を1列目として、何列目のデータを表示させるか),検索型(完全一致型なのでFALSE))
という内容で検索・抽出を行います。
Sheet1の内容が写真のとおりであれば、特に変更する部分はないかと思いますが。
    • good
    • 0
この回答へのお礼

ありがとうございます。
そのままの数式を貼り付けても#N/Aの表示が顧客名・金額の両セルともに出てしまうので・・
一部編集が必要なのかと思ってしまいました(´・ω・`)
#N/Aの表示が出ると基本にしているSheet1データーに問題があるのかと思って・・
12行から下の空欄セルを削除してみましたがそれが原因ではなさそうです。
本当に難しいですが・・一度設定してしまえば今後に活かさせるので、よろしくお願い致します。

お礼日時:2017/03/20 10:00

えっと、A列に入っているデータの名前のシートを作りたいということですか?



マクロが一般的ですが、私がやるならピボットテーブルのページの表示を使います。一瞬です。
ただし、新規シートになるので請求書の書式を後で貼り付けることになります。
    • good
    • 0
この回答へのお礼

説明が下手でご迷惑をおかけしてスミマセン。

お礼日時:2017/03/19 18:18

名前又は番号を入力することで、それに対応した金額を取得(表示)したいということでしょうか?


であるなら、VLOOKUPが使えます。
仮にA1に名前が入力されており、B1に金額を表示したい場合、
「別シート」という名前のシートのA列に名前一覧、B列にそれに対応する金額一覧があるとします。
B1=VLOOKUP(A1,別シート!A:B,2,FALSE)
とすれば、別シートのA列でA1に一致するデータを検索し、該当する行の(A列を1番目として)2番目のデータを表示させることができます。
    • good
    • 0
この回答へのお礼

スミマセン。説明が下手でご迷惑をおかけしています。

お礼日時:2017/03/19 18:15

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