【Excel】シート名を取得してセルに表示させる方法

Excelのシート名を取得してセルに表示できたら、
シート名を変更しても更新されるはずだし便利そうだと思ったので調べました。
結構長い数式だったので忘れないためにメモ。

てっとり早く使いたいならこの式をコピればOK。

=RIGHT(CELL(“filename”,A1),LEN(CELL(“filename”,A1))-FIND(“]”,CELL(“filename”,A1)))

でもせっかくなので何がどうなっているのか理解したい。
ざっくりですが以下説明。

<使用した関数>

  • CELL セルの書式、位置、内容などの情報を返す
  • LEN 文字列の文字数を返す
  • FIND 文字列を検索する
  • RIGHT 指定した文字数分の文字列を右から取り出す

 

CELL関数に引数”filename”を指定すると「ファイルのパス+[ファイル名]+シート名」が取得できます。
=CELL(“filename”,A1)

シート名だけ欲しいので、まずシート名が何文字あるのか調べます。
全体の文字数(LEN関数)から「ファイルのパス+[ファイル名]+シート名」の”]”までの文字数(FIND関数)を引く。
=LEN(CELL(“filename”,A1))-FIND(“]”,CELL(“filename”,A1))

上の引き算でシート名の文字数がわかったので、RIGHT関数で右端から抽出します。
=RIGHT(CELL(“filename”,A1),LEN(CELL(“filename”,A1))-FIND(“]”,CELL(“filename”,A1)))

これでシート名を取り出す数式にたどり着きました。

 

参考にさせてもらったのはこちらのサイトです。
シート名をセルに表示したい~CELL関数とRIGHT関数の合わせ技
解説が丁寧で分かりやすいです。ありがとうございました。

広告

【Office2010】リボンに「開発タブ」を追加するメモ

エクセルでチェックボックスを挿入しようしたら、それらしきボタンが見当たらない。ていうかこざっぱりしてる。
何かがおかしい……何かが足りない……と思ったら「開発タブ」が丸ごと無い。
なんか不便だと思った……。

というわけでリボンに「開発タブ」を表示させるメモ。
Office2010(Excel、Word、PowerPoint等)共通です。

〔ファイル〕→〔オプション〕を選び「Excelのオプション」を開く。
office_01

「リボンのユーザー設定」で「開発」チェックボックスをオンにしてOK。
office_02

これで開発タブがリボンに登場しました。
チェックボックスは「開発」タブ→「挿入」ボタン→フォームコントロールの中にあります。
office_03

Officeの設定はどこに何があるのか見つけにくく、たったこれだけの設定すら「あの機能はどこに?」となる。
特に昔からのユーザーほど新しいインタフェースへの順応は遅いような気がします。
よく使う機能ほど位置で覚えてしまうので、場所を変えられたらちょっとしたパニックです。

バージョンが変わってもボタンの位置や設定方法を統一していて欲しいものです……Microsoftさん。

【Access2010】Excelをインポートしたら日付がおかしな事に

はっきり言って私、Accessを全然使いこなせていません。
遠い昔にはAccessでシステムを作ったりしていたのですが、遠い昔だけに全て忘却の彼方へ……。
というわけで、基本的な使い方さえ思い出せずに1から勉強しています。とほほ。

もともとExcelでちまちま管理していたデータをAccessでやりたかったので、とにかくインポートしてみた。
インポートは出来たものの、日付データが「5/30」になっててほしいのに「41789」みたいな数値に変換されてしまう。

これ遠い昔にも悩んだ記憶があるな、と思ったのでメモ。

 
Excelの日付データはシリアル値で保存されています。
シリアル値というのは日時を計算する為の値で、その数値をもとに”yyyy/mm/dd”や”yyyy年mm月dd日”と日付の形式に変換しています。

Excelの日付セルの書式設定を数値に変えてみると、日付とは程遠い数値が登場しますがそれです。

 
でもAccessにインポートする時ちゃんと日付型を指定して取り込んだのに何故シリアル値に?と悩む。
色々試してみた結果、どうもExcelの日付列に空白や文字列が入り込んでいたのが原因だったようです。

Excelだけで管理してるとやりがちですが、日付列に空白のセルがあったり、余計な見出しや項目が入っているとAccessにインポートした時データ型がおかしな事になります。

 
初心者みたいなミスで恥ずかしいですが、初心者なんだから仕方ないよね!
Excelだとあまりデータ型を意識しなくても何とかなってしまいますが、Accessはデータ型にものすごく気を遣うという事を思い出せました。

 
ExcelのデータをAccessで取り込む予定がある場合、Excelの作り方も少し気を遣う事になります。
データとして扱うので「なんとか表」みたいな見出しを表に入れないようにするとか、列ごとのデータ型に気を遣う(数値の列には文字列を入れない等)とか。

あと、表の下に無駄な空白セルが無いようにするとか。意外と盲点ですこれ。
表で見ると何も入ってないように見えるのに、実は空白が入ってるパターンは結構多いと思います。
気が付きにくいけど。

 
そういえば遠い昔「このExcelデータをAccessに取り込んでください」って頼まれて引き受けたものの、データ型がバラバラで日付が全角で”5月30日”とか入ったりしてて泣きそうになった事を思い出しました。
多分、手で入力して対応したと思う……泣きながら。