エクセルで社内用電話帳を作成する方法

このQ&Aのポイント
  • エクセルを使って社内用電話帳を作成する際に、オートフィルタを活用することで必要な情報を表示させながら更新できます。
  • 50音順に並べるために、頭文字を抽出するための関数を使用しますが、連続する行で同じ頭文字が表示されるのを防ぐために工夫が必要です。
  • 「あ行」の中で最初の行のみ頭文字を表示し、次の頭文字までの行は空白にする方法を紹介します。
回答を見る
  • ベストアンサー

エクセルでインデックス

よろしくお願い致します。 エクセルで社内用電話帳を作っております。 膨大なデータになるため、オートフィルタ等を使って、必要な情報をその都度表示させながら更新してゆくようにしたいと考えております。 「社名」と「読み(ひらがなもしくはカタカナ)」、「電話番号」「FAX番号」、、、というリストにしており、基本としては50音順に並んでいるようにしたいと考えております。 その際、「読み」の頭文字をLEFT関数で1文字抽出していますが、毎行に「あ、あ、あ…」と表示させるとすっきりしません。 そのため、 =IF((EXACT(LEFT(D3,1),A2)),,(LEFT(D3,1))) 自分なりに考えてこの関数をA列に入力してみましたが、それでは1行おきに「あ、” ”、あ、” ”…」と1行とびで表示されてしまうので、結局間違っています。 すべての「あ行」の中で「あ」は先頭の1行だけ表示させ、次は「い」まで空白としたいのです。 どなたが詳しい方がおられましたら、ご教授のほどよろしくお願い致します。 ※ちなみに A列に50音の頭文字、B列に分類(企業のカテゴリ)、C列に社名、D列にひらがな読み、E列以降で電話番号、FAX番号となっております。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

D列にふりがな(「あんざいかぶ」とか「いとうしょうじ」とか)があるとすると A2に =IF(AND(D2<>"",COUNTIF($D$2:D2,LEFT(D2)&"*")=1),LEFT(D2),"") と記入し,下向けにコピーして埋めておきます。

perikan2
質問者

お礼

お礼が遅くなってしまい、申し訳ございませんでした。 今回、ご教示頂いたやり方で書式を作りました。 ありがとうございました。 いろいろなやり方で出来るようなので、これから更に勉強を進めたいと思いました。 お世話になりました。

その他の回答 (1)

  • luka3
  • ベストアンサー率74% (298/400)
回答No.1

自分なら A列の前に1列追加して読みがなの1文字目を入れておき、作業が終わったらA列を非表示にします。 B列はA列の前後を比較し違った場合A列からコピーします。 A2=LEFT(D2,1) B2=A2 A3=LEFT(D3,1) B3=IF(A3=A2,,A3) もしくは、A列には読みがなの1文字目を入れておき、条件付き書式を使って前の列と比較し同じ場合はフォントの色を白にする、とかですね。

perikan2
質問者

お礼

ありがとうございます。 お礼が遅くなってしまい、大変申し訳ございませんでした。 お教え頂いたやり方で、やりたかった事が出来ました。 他にもいろいろやる方法もあるようでしたので、さらに勉強を進めたいと思いました。 またご質問させて頂いた際はよろしくお願い致します。

関連するQ&A

  • エクセルで(株)、(有)等の文字を削除するには

    下記の様な表で(株)、(有)を含んだ社名列から(株)、(有)のみを削除して表示したいのですが。        A列    B列    C列 1行    (株)AAA   111    100 2行    BBBB     222   100 3行    CCC(株)   333    200 4行    (有)DDD   444     200 5行    EEE(有)    555    300 6行    FFFFF     666    200 (株)、(有)を含んだ社名がA列に入力されています。 (株)、(有)は社名の前あるいは後ろに表記と様々です。 (株)、(有)の無い社名もあり文字数もバラバラです。 この様な列から(株)、(有)の文字のみを一度に削除する良い方法はございますでしょうか。 色々と試しましたが出来ませんでした。実際のデータは400行ほどあります。 何卒ご教授宜しくお願い致します。

  • エクセルでのふりがな表示について

    エクセルでふりがなの表示をPHONETIC関数を使ってしていますが、所々カタカナ表示になり、すべてひらがなになりません。例えば、A列の漢字の読みをB列にひらがなで表示したいと思うのですが。A列を並び替えしたときに、B列もそれに対応して並び替えできるようにしたいです。どなたか、ご存知のかた教えて頂けませんか?

  • エクセル:上段同じ文字のセルの同行セルを表示

    添付画像のような場合に、C5にC3と同じ電話番号を入力した場合に、 上段を検索させて同じ電話番号があったらその社名とFAXを5の行に表示させる関数を教えてください。 以前にどこかで見て便利だと思ったので存在するとは思うのですがわかりませんでした。 よろしくお願い致します。

  • エクセル 追加質問

    【質問】 A1のセルに「日本一株式会社 マーケティングスタッフ 山田太郎」 と一行で書かれた時に、 日本一株式会社を判別してB1にはその住所、B2は電話番号、B3はFAX番号を 書かせたいのですがどうのようにしたらいいのでしょうか。 の質問に対して以下のような解答を頂きました。 【回答】 シート1のA1セルに入力されるデータはスペースでいくつかの文字列に分かれているとして、最初のスペースまでの文字列を対象として住所や電話番号FAX番号を表示させるとしたら、次のようにします。 データベースとしてシート2にはA列に日本一株式会社などの文字列が、B列には住所、C列には電話番号、D列にはFAX番号が入力されているとします。 そこでシート1のB1セルには次の式を入力してB3セルまでオートフィルドラッグします。 =IF(COUNTIF(Sheet2!A:A,LEFT(A$1,FIND(" ",A$1)-1))=0,"",INDEX(Sheet2!B:D,MATCH(LEFT(A$1,FIND(" ",A$1)-1),Sheet2!A:A,0),ROW(A1))) と頂きましたが、 Sheet1 B3 まで反映されるのですが、B4、B5・・・と以降反映させる為にはどこを書き換えればよろしいのでしょうか。 ちなみに B4は =IF(COUNTIF(Sheet2!A:A,LEFT(A$1,FIND(" ",A$1)-1))=0,"",INDEX(Sheet2!B:D,MATCH(LEFT(A$1,FIND(" ",A$1)-1),Sheet2!A:A,0),ROW(A4))) になっています。 変更箇所の指摘、回答よろしくどうぞ。

  • エクセル2002を使用した住所録で、一グループごとにセルを追加する方法

    エクセル2002で、住所録を作成しています。 A列のみに入力されており、上から 氏名、 住所、 電話番号、 FAX番号、 Eメールアドレス、 の順に並んでいます。 基本的に一人当たり5行です。 氏名の文字だけ赤色、それ以外の文字は黒色になっています。 ファックス、またはEメールアドレスを持っていない人もいるので、所有していない場合はつめて表示されています。 例えば AさんはファックスとEメールアドレスを、 BさんはEメールアドレスを持っていない場合は、 上から順に、 Aさんの氏名、 Aさんの住所、 Aさんの電話番号、 Bさんの氏名、 Bさんの住所、 Bさんの電話番号、 BさんのFAX番号、と表示されています。 このように一人当たりの行数が3行になったり4行になったりしています。 一人一人の最後の行のすぐ下に、次の人の氏名がきており、対象となっている人が変わっても、空白セルが挿入されることはなくA列にびっしりと入力されています。 この場合、 一人当たりの行数を6行以上にして、 一人当たりの行数が6行に足りない場合はその分だけ空白セルを追加する方法があれば教えてください。

  • Excelの関数で困っています

    お願いします。 求めたい式は A列が空白でB列も空白だったら"空白" A列又はB列のどちらかでも文字が入っていたら"入ってる" A列とB列の両方文字が入っている場合は"両方" と表示させたいと思っております。 IF関数を試みましたが、上手くいきません。 できれば全てを1行で表示できるようにしたいのですが、 無理ならば、2行又は3行になっても構いません。 関数の得意な皆様、どうぞよろしくお願い致します。

  • エクセルのマクロについて教えてください

    こんな感じのマクロを考えています。 今いるセルの行番号の百の位を行番号とし、 A列のその行番号にある文字列を取得したい場合どのように書けばよいのでしょうか? 例) A2には「あさだ」と書かれています。 A3には「まお」と書かれています。 あるセルの行番号が342の時、百の位である3から、A列の3行目、つまりA3にある「まお」という 文字列を取得して表示させる。 TEXT(QUOTIENT (ROW(),100)&"","@")で上記でいうところの文字列3が取れますが、 ここからどうやってA3として、そのセル番号の中身を取得できるのでしょうか?

  • エクセルの文字列操作

    住所録の様式で A列にNo、B列に氏名、C列に住所のファイルがあり、 C列の住所で、1個のセルに何故かしら「住所と電話番号」が入っています。 住所と電話番号を夫々別の列に分割したくて、 電話番号は、RIGHT 関数で取り出しました。 住所は、文字数が一定でないので、LEFTまたはMID関数では出来ません。 ここで質問です 住所データの末尾に混在する電話番号は10文字の場合に限定し、 文字数の異なる、住所(○○市XX町△△番地○△荘2-103など)のみ 抽出する方法はありませんか。 なお、VBAなどは無知です、エクセル関数だけの操作があれば教えてください。

  • エクセル2000 電話番号の市外局番を入れたFAX番号を表示したい

    市外局番からの電話番号と隣の列に市外局番を抜いた(同じ番号なので)FAX番号のデータが入っております。         A        B      電話番号    FAX番号 1 XXX-XXXX-XXXX XXXX-XXXX 2 XXX-XXXX-XXXX XXXX-XXXX と言った具合になります。 これを、C列に市外局番を加えたFAX番号を表示するようにしたいので、C1に=LEFT(A1,4)&B1といれて、そのままオートフィルをかけたのですが、地域によって市外局番が2~5桁ありますので、市外局番が3桁以外の部分は目で見てLEFT関数の桁数を打ち変えております。 これを関数か何かで一括で出来る方法はないものかと思い質問させていただきました。        A          B         C      電話番号    FAX番号    FAX番号2 1 XXX-XXXX-XXXX XXXX-XXXX XXX-XXXX-XXXX  2 XXX-XXXX-XXXX XXXX-XXXX XXX-XXXX-XXXX  最終的に上のような形にしたいのです。 この一覧表は変わることがありますし、データが追加されるときはデータの一番下にあるわけではないので、変わるたびに一から入力しなおさなければなりません。 -の前の数字(市外局番)を数えられればいいと思うのですが、それをカウントできるやり方はあるのでしょうか? よろしくお願い致します。

  • INDEX関数?それともMATCH関数?

    INDEX関数?それともMATCH関数? エクセル2000で下記の様な事をしたいのですが、どうしても分からず思い悩んでいます。 どなたか分かる方がいらしたら、教えてください。 【この表について】 ・予測A(行3)と予測B(行20)と予測(行30)は最初から入っている数値 ・結果A(行4)と結果B(行21)に左から1クール終わるごとに数値が入力される ・結果A(行4)と結果B(行21)に数値が入ると、実績(行31)が表示される ・(行38)と(行39)は予測Aに対する予測Bの割合 【やりたいこと】 <黄色のセル> (1)B31が表示されたらB38を表示 (2)B31~C31が表示されたらC38を表示 (3)B31~D31が表示されたらD38を表示 (4)B31~D31が全て空白ならばD38を表示 (FGHについても同様に表示させたい) →現在の数式は(1)~(3)についてはできるのですが、(4)の場合に#N/Aとなってしまいます。 <赤色セル> (1)B31が表示されたらB38を表示 (2)B31~C31が表示されたらC38を表示 (3)B31~D31が表示されたらD38を表示 (4)B31~D31とF31が表示されたらF39を表示 (5)B31~D31とG31が表示されたらG39を表示 (6)B31~D31とH31が表示されたらH39を表示 (7)B31~D31とF31~H31が全て空白ならばH39を表示 →これもINDEXやMATCHを使って色々考えてみたのですが、(7)の時が#N/Aとなってしまいます。 どうぞよろしくお願いします。

専門家に質問してみよう