自由気ままに

銀嶺

書いてみる~♫

この時期に増えてくるのが・・・

パソコン/インターネット

PCを駆使して作る恒例の年賀状なわけですが・・・

二人ほど入会致しまして、一人はWindows関係の基礎と応用、及びExcel
もう一人は年賀状作り

今週末に後二人ほど入会してきますが、この方たちも年賀状とExcel

Excelの方はお仕事で使うとの事で、私の教室を選んでいただきありがたく存しますが、これまで何人もエクセルを教え、しっかり覚えて帰った人がまだ一人もいません
というか、途中挫折してやめていく人が殆どという感じです

住所録といっても結構関数を使います

例えば、1行目のA列から右に
「連番」「氏名」「姓」「ふりがな」「名」「連名」「敬称」「郵便番号」「住所」「住所1」「住所2」などを入力します

・・・・・例・・・・・
セルB2に「城之内 靖男」と入力
セルI2に「北海道札幌市中央区東3条北7丁目2-3」と入力

「連番」のA2セルに =ROW()-1 

「姓」のC2セルに =IFERROR(LEFT(B2,FIND(" ",SUBSTITUTE(B2," "," "))-1),"")

「ふりがな」のD2セルに =IFERROR(LEFT(PHONETIC(B2),FIND(" ",B2)+1),"")

「名」のE2セルに =IFERROR(SUBSTITUTE(B2,C2,""),"")

「敬称」のG2セルに =IF(F2<>"","様","")

「住所1」のJ2セルに =SUBSTITUTE(I2,K2,"")

「住所2」のK2セルに =IFERROR(RIGHT(I2,LEN(I2)-FIND("市",I2)),"")

などの関数で作った式をそれぞれのセルに入れることによって、B2セルに氏名を入れるとC2~E2のセルまで自動表記してくれます

また、「住所」のI2セルにフル表記で住所を入力するとJ2~K2セルまでが自動表記されますね(ちょうど”市”の所から「住所2」に自動表示される状態になります

という事で、実際入力するセルの数は3か所「氏名」「郵便番号」「住所」だけでそれぞれのフィールドが自動的に完成するようになります

上の数式はExcel2007と2010の実に対応してますので2003以前のOfficeそふとですともっと長い数式になります

例えばC2セルに入る式は次のような感じです
=IF(ISERROR(LEFT(B2,FIND(" ",SUBSTITUTE(B2," "," "))-1)),"",LEFT(B2,FIND(" ",SUBSTITUTE(B2," "," "))-1))

とまあ、関数の意味はおいおいと説明するとして、こんな感じの関数を入れることによって入力がだいぶ楽になるよ~ってことですね ^^
この辺は大体文字列関数で占めてますが、ほかにも色々あります

あまり皆さんに数式を披露することはないですが、時間に余裕があるのでしたら挑戦して手を動かしてみて下さいませ ^^


以上、風邪から完全復帰の銀嶺でした <(_ _)>

  • 銀嶺

    銀嶺

    2012/11/29 21:08:24

    <にゃん吉さん>
    ヒィッッ~!! じゃあないでそ?

    ~(=^‥^)----C<T-T) ほかくニャ

  • 黒猫にゃん吉

    黒猫にゃん吉

    2012/11/29 20:15:02

    Σ(=∇=ノノヒィッッー!!

  • 銀嶺

    銀嶺

    2012/11/27 00:09:40

    <なつみさん>
    `;:゙;`;:゙;`;:゙;`ヽ(゚∀゚ゞ)ブッ 最後は手書きになる?

    まあ、そうなっちゃうんでしょうねぇ・・・ _| ̄|●)))ガクッ

  • 銀嶺

    銀嶺

    2012/11/27 00:07:33

    <みよさん>
    食わず嫌いな人は多いですねぇ・・・ (* ̄∧ ̄*;)ウーン
    今教えている生徒は、Excelが面白いと言ってますので大丈夫でしょう、多分・・・。 ^^;

  • なつみ

    なつみ

    2012/11/25 21:49:55

    そうなんです・・
    複数の条件が付いていると、最後は「うおおおおおおお~」となる
    そして 年賀はがきは手書きになる( 一一)

  • みよ

    みよ

    2012/11/25 09:26:08

    エクセルは、とっつきにくいだけなんだけどね。
    覚えて帰ってもらいたいですね。

  • 銀嶺

    銀嶺

    2012/11/25 01:35:35

    <こんしぇるさん>
    ん? もうそんなことする必要がなくなった?
    あらら・・・、何だか気になりますねぇ・・・ (* ̄∧ ̄*;)ウーン


    関数自体はそれほど難しいものではないですが、複数の条件を付けて一度に出すとなると、色々な関数を組み合わせて作らなければなりませんから、段々ややこしくなります ^^;

    組み合わせの種類は何万通りにもなりますからパズルに似てますね ^^

  • 銀嶺

    銀嶺

    2012/11/25 01:35:06

    <kokoさん>
    大体理解して頂けたでしょうか? (; ̄ー ̄A アセアセ・・・
    説明が前後しちゃってるのでちょっと分かりずらかったかもしれませんが、大体こんな感じです^^

  • mこんしぇるm

    mこんしぇるm

    2012/11/25 00:06:43

    「関数」=「難しい」という固定観念上、え~~~~っ!ってなります。(〃^∇^)o_彡☆あははははっ

    もう、脳みそが固まって、複雑なことを考える余裕がありません。

    悔しい~~~。自分もいるけどね。

  • mこんしぇるm

    mこんしぇるm

    2012/11/25 00:03:03

    自分で作るなんて、無理~~~。

    裏面は、写真をいっぱい入れて、そこにちょっとコメントを入れて、作ってたこともありましたが、

    もう、そんなことする必要がなくなってしまいました。

  • koko

    koko

    2012/11/24 21:29:05

    そっか。なるほどです。
    よく解りましたです(*^_^*)

    ありがとうございます <m(__)m>

  • 銀嶺

    銀嶺

    2012/11/24 01:45:28

    <kokoさん>
    普通のラベル印刷とか、差し込み印刷の場合は =IF(E2<>"","様","")をG2セルに入れるより「名」の次の列に相手の敬称列を設けて式を入れた方がいいでしょう
    但し、Wordを使って葉書きウィザードから宛名印刷を設定する場合は相手の敬称は自動(チェックを入れると)で表示されますので、ここでは敢えて省略いたしましたが、本来は下の様にフィールドを構えますね^^
      ↓           ↓         ↓
    「連番」「氏名」「姓」「ふりがな」「名」「敬称」「連名」「敬称」・・・となるように作り、セルF2に、=IF(E2<>"","様","")の式を入れます

    kokoさんの作った式の中でミス表記がありますねぇ・・・
    =IF(E2<>"",""様","") ←この式ですと「様」の前の「"」ダブルウォートが一つ多いですので正しい文字列は返ってきませんから =IF(E2<>"","様","") ←このように直しておきますね^^

    それと、セルG2に入る式はあくまでも「連名」に対しての「敬称」ですので=IF(F2<>"","様","")として参照元をセルF2にしてあります
    =IF(E2<>"","様","") この式の他に、=IF(E2="","","様") という式でも同様の文字列が返ります^^

    ですから、「名」の列の後ろに1列設け、=IF(E2<>"","様","") の式を入れ
    「連名」の「敬称」の次の列には=IF(G2<>"","様","") とすると分かりやすくなりますよ^^

  • koko

    koko

    2012/11/23 22:15:13

    なるほどですね。
    まだまだ難しいですが、そう言う法則があるって
    解りましたです。

    敬称ですがF2だと連名になるので
    「敬称」のG2セルに =IF(F2<>"","様","")
    は、=IF(E2<>"",""様","")でもいいのですよね。

    何時もお世話になります<m(__)m>

  • 銀嶺

    銀嶺

    2012/11/23 02:37:00

    <なつみさん>
    Excelはねぇ~ 「関数」という言葉だけで皆さん、え~~~~~っ!ってなりますね( ´艸`)ムププ
    理由は、時間をかけないで早く覚えようとするからなんですねぇ~ ^^
    関数というのは一つずつ理解していかなければ組み合わせて使う事も出来ませんので柔軟な頭が必要になってきます
    日本語で言う文法のようなものですから方法さえ分かれば上達も早くなります

    「関数」=「難しい」という固定観念上、え~~~~っ!ってなるのでしょうねぇ ^^

  • 銀嶺

    銀嶺

    2012/11/23 02:30:05

    <kokoさん>
    関数を使う事によって仕事の効率化が図れるようになりますね ^^

    では、ある関数の解析をしてみますか? ^^
    その前に、一つ数式に誤りがありましたので訂正します

    「住所1」のJ2セルに =SUBSTITUTE(I2,K13,"") ←子の式に誤りがあります
    正解は 「住所1」のJ2セルに =SUBSTITUTE(I2,K2,"") となります

    では「姓」のC2セルに =IFERROR(LEFT(B2,FIND(" ",SUBSTITUTE(B2," "," "))-1),"") ←この式を解析していきます

    一番中にあるSUBSTITUTE(B2," "," ")は、氏名の入力したセルに対してスペースキーで一文字空けたところが半角の場合、全て全角のスペースに直す関数です
    次にその一つ外側のFIND(" ",SUBSTITUTE(B2," "," "))-1)で、FIND関数を使い全角スペースを捜し、見つけた場所から文字数を一つ引いてます(”-1”の部分)
    そのまた一つ外側のLEFT関数を使ってFIND関数で引き出した文字の左側部分全体の文字を引き出しています
    一番外側のIFERROR関数はエラーが返ってきた場合は空白で返すという意味になります

    LEFT関数を使っていますので、常に左側の文字列を返していきます
    ですから、この場合は、SUBSTITUTE関数で半角スペースを全角スペースに変更し、FIND関数でその変更した全角スペースを検索位置として探しだし、その文字位置から-1文字分引いた左側の文字全体を引き出すという事です ^^

    解析が出来るようになると関数のネストも理解できるようになりますね ^^




  • 銀嶺

    銀嶺

    2012/11/23 01:43:59

    <冬琉さん>
    お初のコメントありがとうございます <(_ _)>
    「LibreOffice」で拡張して「PHONETIC」が使えるのでしたら、五十音順で並び替えが出来るようにもなりますので、ランダムでレコードを入力したとしても昇順で五十音順に並び替える事が出来ます
    少々地味な関数ですが使い道は十分ありますよ ^^

    IFERRORの代わりにIF+ISERRORで対処できますのでご安心ください ^^

  • 銀嶺

    銀嶺

    2012/11/23 01:27:19

    <さ~らさん>
    12月まで長引かなくて良かったです (; ̄ー ̄A アセアセ・・・
    これから年末近くまでは忙しくなるシーズンですので、いつまでも風邪引いてられませんからねぇ・・・ ^^;

    遅れた分はこの1ヶ月でしっかり取り戻すつもりです ^^v
    ご心配おかけしました <(_ _)>

  • なつみ

    なつみ

    2012/11/22 22:54:30

    ああああああ~
    苦しかったエクセルを思い出した・・
    みんな挫折するのね

  • koko

    koko

    2012/11/22 22:35:41

    やってみましたですが、凄いですね。

    関数を覚える事が出来ませんが、基本好きですので
    面白いですね^^嬉しくなりましたです(*^_^*)

    仕事でも、随分使っています。
    覚えられないので自分専用のシートを作り貼り付けておいて使っています。
    多分周りでは私以外知らないと思いますが、こっそり使っています^^
    お陰で随分時間短縮できています^^

  • 冬琉

    冬琉

    2012/11/22 21:18:22

    季節ネタと言う事もあり、拝見致しました。
    もう年末なんですよねぇ(ーーハエェ

    それと、当方Linuxディストリビューションの一つ、Ubuntuを使用しております。
    プリインストールされているOffice互換ソフト「LibreOffice」環境下での転用は可能かと気になり、試行してみました。
    結果から申し上げますと、転用自体は可能なようです。
    ただ、ふりがな(PHONETIC関数)は非対応な為、外部拡張による補完。
    一部関数の変更(IFERROR関数→IF関数+ISERROR関数)が必要ですが。

    「Excelでの」と言う本題の趣旨とは方向がそれてしまう為、コメントとしては少々異形なものかと思います。
    けれども学ぶ機会を頂いた事には変わりない為、お礼申し上げたくコメント致しました。
    ありがとうございましたm(_ _m

  • ☆◇さ~ら◇☆

    ☆◇さ~ら◇☆

    2012/11/22 12:20:30

    風邪が治ってよかったですね(^^)