• ベストアンサー

エクセルの数式について

エクセル2007にて、企業用の住所録を作成しています。 何百件かある住所録の中から、検索して一つの住所録をラベルシートを使って住所を印刷したいと考えています。調べた結果、ワードの差し込み印刷機能を使うと便利のようですが、使い勝手など総合的に判断した結果、この方法は諦めました。 そのため、エクセルで全てを作ろうとしましたが、壁にぶち当たってしまいましたので、アドバイスを頂けると幸いです。 現在、sheet1にデータベース(住所録)。sheet2にデータ抽出ページ。sheet3を印刷用のページ。にそれぞれ設定しています。(sheet2で抽出と印刷が出来ればベストでしたが、印刷時に選択した部分の印刷にしたくないので諦めました) 質問ですが、sheet2のデータの関数に関してです。宛て名が企業名のみの一行のものと、企業名・担当者名の二行のものがあります。データベースのシートにあらかじめ「御中・様」を宛先と共に入力しておくのも一つの方法だと思いますが、データを他でも共有できるよう「御中・様」の付け足しをsheet2で行いたいと考えています。 企業名に関しては、 =VLOOKUP(C1,データベース!$A$2:$AB$1001,L1)&" 御中" の数式でうまくいきました。  C1…抽出するデータ(住所録)の番号  L1…抽出するデータ(住所録)のセルの位置 ただ、担当者に関しては、 すべての住所録において担当者までの記載がないため、上記と同じ式を用いると、当たり前ながら「様」のみが表示されてしまいます。 この「様」をデータ(住所録)がない場合は、表示しないようにするには、数式をどのように入力すればよいのでしょうか?IF関数を使ってみましたが、うまくできませんでした。 こちらが現在入力している、担当者名ようの数式です。 =VLOOKUP(C1,データベース!$A$2:$AB$1001,L2)  C1・L1のセルの意味は上記の企業名と同じ意味です。  ちなみに、ゼロ値のセルにゼロ表示するのチェックは外していますので、データがない場合は、空白になっています。 文章が長くなってしまいましたが、よろしくお願いします。

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

  • ベストアンサー
noname#70958
noname#70958
回答No.4

……あ。 すいません、間違えてますね。それも2度続けて。^^;;;; 逆でした。 × =VLOOKUP(C1,データベース!$A$2:$AB$1001,L1)&IF(B8=0,""," 御中") ○ =VLOOKUP(C1,データベース!$A$2:$AB$1001,L1)&IF(B8=0," 御中","") 【B8が0のとき" 御中"をつける】でした。 お手数おかけして申し訳ありません。陳謝します。

goto-shin_1976
質問者

お礼

ご回答ありがとうございます。 最後の部分が逆だったんですね。こちらの数式を当てはめたら、大丈夫でした。それにしてもエクセルは奥が深いですね。まだまだ勉強しないといけないです。 一日つきっきり?のご指導ありがとうございました。

その他の回答 (3)

noname#70958
noname#70958
回答No.3

#2です。「余談」の件について。 【担当者名表示セル】というのは、 sheet2の担当者名を表示させるセル、つまり、  =IF(VLOOKUP(C1,データベース!$A$2:$AB$1001,L2)="",0,VLOOKUP(C1,データベース!$A$2:$AB$1001,L2)&" 様") が入力されているセルのことです。 sheet2のB8が担当者名を表示するセルであれば、 企業名を表示するセルの数式は、  =VLOOKUP(C1,データベース!$A$2:$AB$1001,L1)&IF(B8=0,""," 御中") となります。 担当者名を表示するセルの値は、  担当者データがある場合 ⇒ 担当者名に"様"を加えた文字列  担当者データがない場合 ⇒ (見た目表示されていなくてもセルの値としては)数値の0 ですから、 数式 IF(B8=0,""," 御中") の値は、  担当者データがある場合 ⇒ " 御中"  担当者データがない場合 ⇒ "" となり、 全体として、  担当者データがある場合 ⇒ 企業名に" 御中"を加えた文字列  担当者データがない場合 ⇒ 企業名単体 となります。 ご参考まで。

goto-shin_1976
質問者

補足

二度目のご回答ありございます。 さっそく企業名を表示させるセル(確認ページ・B7)に =VLOOKUP(C1,データベース!$A$2:$AB$1001,L1)&IF(B8=0,""," 御中") 担当者名を表示させるセル(確認ページ・B8)に =IF(VLOOKUP(C1,データベース!$A$2:$AB$1001,L2)="",0,VLOOKUP(C1,データベース!$A$2:$AB$1001,L2)&" 様") を、それぞれ入力して試したところ、  企業名…あり 担当者…なし の場合 御中・様の両方表示されず  企業名…あり 担当者…なし の場合 御中・様の両方表示される という結果になりました。 私自身の限界を超えた数式になっているので、どこが悪いのかさっぱりわかりません。教えていただいた式を、そのままコピーしたのがまずかったのでしょうか?

noname#70958
noname#70958
回答No.2

●[ゼロ値のセルにゼロを表示する] がオフになっているという前提で。 数式だけで処理するならば、担当者名を表示するセルを  =IF(VLOOKUP(C1,データベース!$A$2:$AB$1001,L2)="",0,VLOOKUP(C1,データベース!$A$2:$AB$1001,L2)&" 様") とすればご要望の通り動作します。 ※データベースシートの該当行に、担当者データがない場合は0を、  担当者データがある場合はその値に" 様"をつけた文字列を返す。 ----------------------------------------------------------------------- 別案として、数式ではなく表示形式を使う方法もあります。 担当者名を表示するセルについて、数式はそのまま  =VLOOKUP(C1,データベース!$A$2:$AB$1001,L2) とし、セルの表示形式を、  0;;;@ "様" とすれば、0が返る(担当者データがない)場合は空白、 文字列が返る(担当者データがある)場合のみ"様"がつきます。 ----------------------------------------------------------------------- なお、余談ですが、企業名を表示するセルについて、 担当者名を表示するセルを参照して、  =VLOOKUP(C1,データベース!$A$2:$AB$1001,L1)&IF(【担当者名表示セル】=0,""," 御中") とすれば、担当者名が存在する場合には" 御中"はつきません。 以上ご参考まで。

goto-shin_1976
質問者

補足

ご回答ありがとうございます。 最初に記入いただいた、「様」の表示に関してはうまくいきました。ありがとうございます。 もう一度質問する形になってしまいますが、余談とありました、 =VLOOKUP(C1,データベース!$A$2:$AB$1001,L1)&IF(【担当者名表示セル】=0,""," 御中") …の数式の【当者名表示セル】は、どのシートのことを指すのでしょうか?データベースでしょうか?確認ページでしょうか? 試してみましたが、うまくいきませんでしたので、もう少し詳しく教えていただけると幸いです。 ちなみに、データベースのシートでは、F列の2~1001行に、 確認ページのシートには、B8のセルに それぞれ担当者名のセルになっています。

  • Turbo415
  • ベストアンサー率26% (2631/9774)
回答No.1

基本的にIFを使えばできますよ。 たとえば =IF(ISBLANK(VLOOKUP(C1,データベース!$A$2:$AB$1001,L2)),"",VLOOKUP(C1,データベース!$A$2:$AB$1001,L2)) とかではだめでしょうか? ただし、L2番目のセルはブランクである必要があります。スペースやゼロではダメです。スペースが入っているときはDeleteキーで削除してみてください。 それと蛇足ですが、企業名だけのときは企業名+御中でいいですが、 担当者のフルネームがあるときは御中書かないで、担当者名の後ろに様をつけるだけが正式のはずですが。 ですから、○○株式会社 △△様が正式です。 ○○株式会社御中 △△様ではおかしいですよ。

goto-shin_1976
質問者

補足

さっそくのご回答ありがとうございます。L2のセルはブランクではありませんので、ご提示いただいた方法では難しいですね。 L2のセルには、住所録のシートになっているデータベースのどこのデータを抽出するかの数値が入っています。 質問のところに  こちらが現在入力している、担当者名ようの数式です。  =VLOOKUP(C1,データベース!$A$2:$AB$1001,L2)   C1・L1のセルの意味は上記の企業名と同じ意味です。  …と記載しましたが、L1はL2の間違いでした。 それと蛇足とありましたが、情報ありがとうございます。はがきやダイレクトメールに貼るものではないので、あまり神経質になる必要もありませんが、使い方が難しいですね。 ただ、この条件を当てはめて数式を作成するとなると、かなり複雑になりそうで頭が痛いです。

関連するQ&A

  • エクセルの数式を教えてください。

    請求書内訳を作成しているんですが、 どの数式を使ったら、下記の操作ができるかがわからず、つまずいています。 ■Sheetの詳細 Sheetは2種類あります。 Sheet1:請求書内訳 (顧客名、契約金額、合計金額)*顧客へ送るもの。 Sheet2:顧客名のコード表 (顧客コード、顧客名、契約金額) ■したいこと 「顧客コードを入力すると、顧客名と契約金額が表示される仕組み」を作りたいのです。 VLOOKUPを使ってみたのですが… Sheet2のデータを参照し、Sheet1の顧客名欄に顧客名を表示することはできましたが、 Sheet1へのコードを入力により、Sheet1へデータ(顧客名)を表示させる(Sheet2より引き出す)ことができませんでした。 *Sheet1の顧客名欄で使用した式はこちらです。 =VLOOKUP(Sheet2!A4,Sheet2!$A$4:$C$44,2,FALSE) 説明が分かりにくくて申し訳ありませんが、Sheet1へのコード入力のみで、 Sheet2からSheet1へデータ(顧客名、契約金額)を抽出、表示することはできるのでしょうか?

  • エクセル/数式で表示された文字の一部のサイズ変更

    Sheet1のA1セルの文字列(顧客名)に 御中 をつけて別のシートに表示したいのです。 =Sheet1!A1&" 御 中" で表示できるのは存じておりますが、文字のサイズを顧客名と御中で変えたいのです。御中を若干ちいさめにしたいのです。 文字でセルに直接 ABCD株式会社 御 中 と打ち込んだものならフォントサイズは文字ごとに変えられますが、数式で表示された文字の一部のフォントサイズを変える方法が判りません。たぶん書式をいじる関数はないのだと思います。 御中を別のセルにできればよいのですが、顧客名の長さが不明なので数式で &" 御中 としています。 良い方法があったらご教示ください。

  • エクセルの数式をどのように入れたら良いでしょうか?

    エクセルの数式をどのように入れたら良いでしょうか? いつもこちらでお世話になっています。 今回も教えて頂きたく質問させていただきます エクセルについてですが、 sheet1に入っているデータを sheet2に入力するようにしたいのですが sheet1の A列に1~50までのNo. →A1セルにNo.1、A50セルにNo.50 B列に(1)データ C列に(2)データ があり sheet2の D5のセルに「1」と入力すれば、sheet1!A列の数字とリンクしてsheet!B1の(1)データが入り D6のセルに「10」と入力すれば、Sheet1!A列の数字とリンクしてsheet!C10の(2)データが入る ように設定し、 さらにsheet2のD5,D6のセルに上書きで(繰り返し)数字を入力させ 数式が消えないようにしたいのですが どのようにすればよいでしょうか? 分かりずらい説明で申し訳ありませんが 大変困っているので、アドバイス頂けると助かります。

  • エクセル VLOOKUP での質問です。

    「売上管理」のデータと見積書を連動させています。 会社名の部分は =VLOOKUP(H2,売上管理!A:J,3,FALSE) & "御中" としていますが、 会社名の下に担当者が表示され、 担当者欄が空欄のときは、社名+御中 担当者欄に記載がある時は、名前+様 したいのですが数式がわかりません。 また、同じ見積書内で「物件名:******」 と表示させたいのですが、VLOOKUP式のどこに"物件名:"とにゅうりょくすればよいのでしょうか? 式は、上の会社名の数式の列の部分を変えているだけの式です。 お分かりの方、お願いいたします!

  • エクセルの数式・関数を教えてください。

    入力シートにデータがあり、請求書シートに期間を参照して日付を埋め込みたいと考えています。 期間というものは、請求シートの請求日の前月1ヶ月間を考えています。 入力シート    a    b     c     d 1 日付  商品1  商品2  商品3 2 12/7    100   200   300 3 12/15    40    50   60 4 1/7      70    80   90 請求シート  請求日(AR3)  請求内訳日付欄(C12:C42) C12などの欄の数式で、セルAR3の日付の前月の日付範囲で入力シートの日付欄を抽出したいのです。 いろいろ調べましたが、なかなかうまくいかず困っています。 参考となる数式を教えていただければ、助かります。

  • EXCELを使って住所録を作っています。

    EXCELを使って住所録を作っています。 名前や住所などのデータを入力し、別シートでVLOOKUP関数でデータを抽出するのですが、セルがブランクの時に0を表示してしまいます。解決方法を教えてください。

  • エクセルの数式のコピーについて教えてください。

    A1のセルに、「+sheet1!A1」 という数式があるとします。この数式をB1、C1、D1のセルに貼り付けると、「+sheet1!B1」、「+sheet1!C1」、「+sheet1!D1」というようになるんですけど、これを、「+sheet1!A2」、「+sheet1!A3」、「+sheet1!A4」、というように、B1、C1、D1のセルに貼り付けることって出来ますか?

  • エクセル2007の数式で・・・

    =IF('1'!G2:G501="","",COUNTIF('1'!$G$2:$G$600,"○○"))と言う数式を入力していますが シート1のG2~G501のセルの中でG7以外のセルに文字を入力してもカウントされません。 ※G7に入力しない限りカウントされません。 シートは『15』まであるのですが、シート2はG8、シート3はG9と言った感じで一つずつ、ずれています。 他の項目についても同じような数式を入れていますが、そちらは問題ありません。 一度セルを入力し直しましたが、変わりませんでした。 今回住所録として作成しましたが、シートとしては集計用シートと住所用シート(15に分けて)入力しています。

  • エクセルの数式

    エクセルで数式を入力したとき、数式の欄をクリックすると、用いたセルの部分と対応するように数式にも色がつきます。 別のシートのセルの値を用いた場合も同様に、クリックしたらどのシートの、どのセルの値を用いたか簡単にわかるようにできますか? Sheet1!R[162]C[2]などからどのセルを用いたかを判断するのが面倒です。 以前はできたような気がするのですが。 (最近別のパソコンを使用し始めました) よろしければ教えてください。

  • エクセルで数式セルのオートフィルがうまくいかない

    エクセル2000で数式を含んだセルのオートフィルがうまくいきません。 具体的には F5=IF($D$2="","",VLOOKUP($D$2,data!C8:data!D11,2,0)) F6=IF($D$2="","",VLOOKUP($D$2,data!C12:data!D15,2,0)) となっています。F5とF6セルを選択し、行方向にオートフィルをかけると F7=IF($D$2="","",VLOOKUP($D$2,data!C10:data!D13,2,0)) F8=IF($D$2="","",VLOOKUP($D$2,data!C14:data!D17,2,0)) となってしまいます。 VLOOKUPのターゲット範囲がうまく動いてくれません。 お知恵拝借お願いいたします。

専門家に質問してみよう