Excel で英数字の全角・半角を変換する

Excel には 英数字(+カタカナ)の 全角・半角を変換する ワークシート関数があります。
(Excel 2010 で確認)

全角⇒半角は「ASC」です。 プログラム言語だとアスキーコードとか返す同名の関数が あったりするので少し紛らわしいですね。

WRITE_0874_01

=ASC(文字列)

全角の英数カナ文字(2バイト)を、半角の英数カナ文字(1バイト)に
変換します。

半角⇒全角は「JIS」です。

WRITE_0874_02

=JIS(文字列)

半角の英数カナ文字(1バイト)を、全角の英数カナ文字(2バイト)に
変換します。

この 2つの関数はペアなので 変換⇒再変換で元に戻ります。

WRITE_0874_03

Excel の翻訳機能

セルをクリックしたら 偶然表示されて 驚いたのですが Excel には 2007 から翻訳機能があるそうです。

[参考]
【TIPS】Excelの翻訳機能を辞書代わりに使う方法 | Excelを制する者は人生を制す 〜No Excel No Life〜

例えば 次のように 英単語の入った セルを [Alt] を 押しながら マウスでクリックします。

WRITE_0xx2_01

「リサーチ」パネルに 翻訳結果が表示されます。

WRITE_0xx2_02

日本語から英語もできます。

WRITE_0xx2_03

「校閲」タブの「翻訳」から表示させることもできます。

WRITE_0xx2_04

翻訳機能の精度は よくわかりませんが こんな機能まであるとは すごいですね。

Excel や Word で選択しにくいオブジェクトを簡単に選択する

Excel や Word で 背景が透明なオブジェクトを複数重ねてしまうと 下になったオブジェクトが選択しにくいことがあります。

WRITE_0864_01

こういうときは 「検索と選択」の中に「オブジェクトの選択と表示」というメニューがあるので それを使います。 (Excel 2010 で確認)

WRITE_0864_02

図形の一覧なんかが出てきますので・・・。

WRITE_0864_03

リストから簡単に選択できます。

Word にも同様の機能があります。 (Word 2010 で確認)

WRITE_0864_04

イライラしそうな操作には ちゃんと機能が用意されてますね。

Excel で 白黒印刷プレビュー

パソコンで資料を作成したときに 印刷イメージを確認しておくのは 大切なマナーだと思います。 特に Excel だとセルの中で文字列が切れてたり 表がはみ出してたりしますよね。

さらにカラーだとプリント代が高くなるため 会議には白黒印刷で・・・なんてことも多いのではないでしょうか?

Excel には印刷プレビューを白黒にする機能があります。

WRITE_0856_01

上図のように、「ページ設定」⇒「シート」に設定があります。

Excel で書式だけをクリアする

たまに忘れるのでメモ。

Excel で書式だけをクリアするには、 リボンのホームタブにある「クリア」の下に 「書式のクリア」を選択します。

WRITE_0850_01

Excel で数式を表示してくれるショートカット

Excel で セルの中に数式が なんだったかな? どこを参照してるかな? と思うことがあります。

WRITE_0827_01

セルを選択すれば 数式バーに 表示させることができますが 表示を切り替える便利なショートカットがあります。

[Ctrl] + [Shift] + [@]

このショートカットで 選択しているシートの数式が セルに表示されます。 もう1度ショートカットを入力すると 元に戻ります。

WRITE_0827_02

ちなみにこれをメニューから 変更しようとすると Excel2010 の場合 次のように 「オプション」→「詳細設定」を開いて 設定する必要があります。

WRITE_0827_03

値を入力してくれる便利なショートカットも良いですが 設定を変更してくれるショートカットだと メニューを開かなくて良いので覚えておくと 作業が捗ります。

Excel で、空白のセルにだけ色を塗る

条件付き書式とかではなく、現在空白のセルを 選択して色を塗る方法です。

今回の方法は、 ジャンプ機能を使用しているので 同じ方法で色々応用が効きます。

まず、次のように空白を含んだ範囲があるとします。

WRITE_0825_01

対象の範囲を選択します。

WRITE_0825_02

[Ctrl]+[g] を押して ジャンプ機能を呼び出します。

WRITE_0825_03

表示されたウィンドウの「セル選択」ボタンを押します。

選択オプションが表示されます。

WRITE_0825_04

「空白セル」にチェックを付けて「OK」ボタンを押します。

次のように 選択した範囲の中の空白が 選択状態になります。

WRITE_0825_05

あとは、この状態で色を設定するだけです。

WRITE_0825_06

パッと目で確認したいときなど簡単で便利です。

Excel で範囲の入力中のカーソルキー移動

Excel で範囲の入力中に、カーソル移動して 数字だけを変えたいときがあります。

WRITE_0816_01

そのままカーソルキーを押すと下のように 別のセルを選択してしまい 入力欄の中を移動することができません。

WRITE_0816_02

ここは、通常のセルの入力と同じように [F2] キーを押すと 編集モードになります。

WRITE_0816_03

これでカーソル移動ができるようになります。

Excel や Word 2010 で「開発」タブを表示

デフォルトでは非表示になっている「開発」タブですが 2010 では表示の設定が 2007 と変わってしまっています。

探したのでメモ。

2007 (Excel) の場合は↓です。

「Officeマーク」タブ→「Excel のオプション」→「基本設定」
 →「Excel の使用に関する基本オプション」

WRITE_0772_01

2010 (Word) の場合は↓です。

「ファイル」タブ→「Word のオプション」→「リボンのユーザ設定」

WRITE_0772_02

個別の設定ではなく、 他の機能と同じように リボンの表示設定の中に入りました。

こちらの方が良いような気がしますが コロコロ変わると ちょっと困りますね。

VBA で使える便利な Like 演算子

VBA(VB) には文字列を比較する Like という演算子があります。 これを使用すると簡単なパターン検索なら正規表現や文字列関数を使用せずに 済ませることができます。

If "abc" Like "a??" Then ... ' ←True

[参考サイト]
Excel(エクセル)VBA入門:Findメソッド,Like演算子を使った検索

# で数字とマッチさせることができますが 全半角問わないので、厳密に半角数字をチェックする時は 次のように [] を使用します。

If "3" Like "#" Then ... ' ←True
If "4" Like "#" Then ... ' ←これも True になる

If "3" Like "[0-9]" Then ... ' ←True
If "4" Like "[0-9]" Then ... ' ←これは False になる

ワークシート関数 SUBTOTAL を使いこなす 1

Excel には SUBTOTAL という便利な関数があります。

基本的な使い方は SUM 関数や COUNT 関数と 同じように範囲を指定して使います。

WRITE_0513_01

違うのは上のように「集計方法」を指定することです。

SUBTOTAL 関数は 範囲に対して次のような 「集計方法」に指定で集計ができます。 (上の図の 9 は SUM になります)

指定集計関数
1AVERAGE
2COUNT
3COUNTA
4MAX
5MIN
6PRODUCT
7STDEV
8STDEVP
9SUM
10VAR
11VARP

引数で集計方法を指定できるのが SUBTOTAL 関数のスゴい使い方ではありません。 (もちろんそれもありますが)

SUBTOTAL 関数は SUBTOTAL 関数の結果を集計に含めない、という 他の関数にはないスゴい特徴があります。

次のように赤色と青色の範囲の小計を出すときに SUM 関数だと範囲の指定が面倒ですが SUBTOTAL 関数は範囲が被っても問題ないので 範囲の指定が簡単になります。

WRITE_0513_02

上の図の B5 セルの 6 は SUBTOTAL 関数の結果なので B9 セルの 21 には含まれないわけです。

次回に続きます。

ワークシート関数 SUMPRODUCT を使いこなす 3

SUMPRODUCT 編 最終回です。

次の表のように計算式だけでなく 条件も含めたい場合があります。 これも SUMPRODUCT で対応できてしまいます。

WRITE_0511_01

次の表のように計算式だけでなく 条件も含めたい場合があります。 これも SUMPRODUCT で対応できてしまいます。

次のような式になります。

WRITE_0511_02

上の表の「購入:○」を入れれば、動的に合計を計算してくれます。

3 つ目の引数がポイントです。
展開すると次のようになります。

  30 * 2 * ( ""  = "○")*1
+ 40 * 1 * ("○" = "○")*1
+ 80 * 4 * ("○" = "○")*1
+ 20 * 3 * ( ""  = "○")*1

ここで「 ( "" = "○") 」の部分は TRUE/FALSE を返すのですが Excel では TRUE = 1, FALSE = 0 という扱いになります。

ただ TRUE/FALSE のままではマズいので 1 を掛けて数値に変換しています。 この方法で、条件式を含むことができます。

計算用の列を持てば同じことができますし、式もシンプルにはなるのですが 計算用の列は、行を追加するときにちゃんと入れてくれなかったり 自分だけが使うのではないときに気を使うことがあります。

SUMPRODUCT だと式は複雑になりますが シートのセルはシンプルにすることができます。

VLOOKUP や INDIRECT ほど主演な感じではないですが 助演くらいはやってくれる便利な SUMPRODUCT です。

ワークシート関数 SUMPRODUCT を使いこなす 2

2 回目です。

前回は次のような 2 列の表の合計を計算しました。

WRITE_0510_01

SUMPRODUCT の引数に範囲を 2 つ指定していますが 実は範囲は 30 個まで指定することができます。

ですので、例えば次のような 3 列の表も。

WRITE_0510_02

列同士が掛け算なら SUMPRODUCT で計算することができます。

ただ、よく見ると上の表の「消費税」は 5% や 0% なので そのまま「単価」「数量」と掛けると 次のように、おかしなことになってしまいます。

WRITE_0510_03

これは当然次のような計算になっているためです。

(50 * 2 * 0.05) + (80 * 1 * 0.05) + (220 * 4 * 0) = 9

ここで消費税を 105% にしたり 税金の列を別に持たせてしまっては SUMPRODUCT を使う意味がありません。

こういうときは次のようにします。

WRITE_0510_04

消費税の範囲に「 +1 」をしています。

これは次のような計算になります。

(50 * 2 * (0.05+1)) + (80 * 1 * (0.05+1) + (220 * 4 * (0+1)) = 1609

慣れるまではややこしく感じるかもしれません。

あと 1 回続きます。

ワークシート関数 SUMPRODUCT を使いこなす 1

Excel には SUMPRODUCT という便利な関数があります。

例えば次のような表があります。

WRITE_0508_01

この表全体の合計金額を出したい場合 次のように 各行の「単価」と「数量」を掛けて 行の「金額」を計算して それを合計します。

WRITE_0508_02

これだとシート上に「金額」欄を 作る必要があります。

次のように SUMPRODUCT を使うと 簡単に合計が出せます。

WRITE_0508_03

SUMPRODUCT の引数には「範囲」を指定します。

上の図では、色分けしてありますが 範囲に名前を付けると 次のようにもっとスッキリわかりやすくなります。

WRITE_0508_04

SUMPRODUCT は 指定した範囲の対応する要素を掛けて その合計を計算してくれます。

次回は 応用編です。

Excel で外部 Web データの取り込み

Excel には外部データの取り込み機能がありますが これを使うと Web のデータも簡単に Excel に取り込むことができます。

便利なのは、単に HTML としてデータを取り込むのではなく テーブル(表)になっている場合、そのテーブルを指定すると テーブルのデータだけを取り込むことができます。

メニューから「データ」→「外部データの取り込み」→「新しい Web クエリ」を選択します。

WRITE_0474_01

取り込む Web ページのアドレスを入力して「移動」ボタンを押すと そのページが表示されます。

WRITE_0474_02

上の図の左上に [→] という黄色いマークが表示されていますが これを選択すると「ページ全体」を取り込む指定になります。

次の図のようにページ内のテーブルにも [→] マークが表示されます。 このマークをクリックで選択してみます。

WRITE_0474_03

[→] マークが緑色になります。
複数のテーブルを選択することもできます。

取り込むテーブルを選択したら「取り込み」ボタンを押します。

WRITE_0474_04

インポート先を指定します。

WRITE_0474_05

次の図のように取り込まれます。

WRITE_0474_06

1 回取り込むと、その指定を記録するので、「更新」処理をするだけで 再度読み込むこともできます。 Web に置いてあるデータを利用する場合など手動のコピペも不要になので便利です。

四捨五入して文字列にするワークシート関数

Excel には、数値を四捨五入して文字列に変換してくれる 便利なワークシート関数があります。

次のようなものがあります。

関数名 書式 返り値
DOLLAR=DOLLAR(12345.6789, 3)$12,345.679
YEN=YEN(12345.6789, 3)¥12,345.679
FIXED=FIXED(12345.6789, 3)12,345.679

第二引数は四捨五入する桁数で、省略すると 2 になります。

FIXED() ワークシート関数だけ、第三引数があり ここに TRUE (デフォルトは FALSE) を指定すると カンマ区切りなしで返します。

Excel の AREAS() ワークシート関数

Excel には AREAS() というワークシート関数があるのですが 使い方がややこしいので説明を書いてみました。

通常、COUNT() などのワークシート関数では 次のように複数の範囲をカンマで区切って使用することができます。

WRITE_0x01_01

同じ範囲指定を AREAS() にも適用してみます。
(カッコを二重にします)

WRITE_0x01_02

2 が返りました。

この AREAS() ワークシート関数は、引数の範囲指定に 何個の「範囲」が指定されたかを返してくれるわけです。

これだけだと使い道がよくわからないので、 さきほどと同じ範囲指定に、次のように名前を付けます。

WRITE_0x01_03

今度は引数に名前を指定します。
(この場合は二重カッコは不要です)

WRITE_0x01_04

当然、結果はさきほどと同じ値が返ります。

このように AREAS() ワークシート関数を使うと 範囲指定が見えないときに範囲の数を判定することができるわけです。

Excel の判定ワークシート関数

Excel には次のような判定用の関数があります。

WRITE_0440_01

ISBLANK() や ISNA() は セルの未入力や VLOOKUP で値がとれない場合の #N/A を判定できるので 使用頻度は高いですね。

また、エラーには、#DIV/0 (0 除算) など色々ありますが 細かく分類するには ERROR.TYPE() という関数を使います。

エラーERROR.TYPE() の結果
#NULL!1
#DIV/0!2
#VALUE!3
#REF!4
#NAME?5
#NUM!6
#N/A7
その他#N/A

Excel で改行付きの書式を設定する

下の図のセル D2 には 2011/08/30 という値が入っています。 改行付きの書式 "dd (改行) (aaa)" を設定することで表示を改行させています。

WRITE_0421_01

書式を改行させるには、「セルの書式設定」で「ユーザ−定義」を選択して 入力中に [Ctrl]+[J] を押します。 Excel のセルの中で [Alt]+[Enter] を押すのと同じで複数行の入力ができるようになります。

WRITE_0421_02

これだけでなく、「配置」「文字の制御」で「折り返して全体を表示する」と 「縮小して全体を表示する」にチェックを入れます。 「縮小して全体を表示する」は「折り返して全体を表示する」にチェックを入れると 不活性になってしまうので、「折り返して全体を表示する」がチェックされていない状態で チェックしてやる必要があります。

WRITE_0421_03

この方法を使うと、は計算にも使える単純な日付を持ちつつも、 表示に関数を使わなくて済みます。

Excel の AVERAGE ワークシート関数

Excel の COUNT ワークシート関数」で COUNT() と COUNTA() について書きましたが 相加平均 を取得する AVERAGE 関数にも AVERAGE() と AVERAGEA() があります。

COUNT と同じで AVERAGE() は数値のセルのみ、AVERAGEA() は空欄以外のセルの相加平均を取得します。

次のようになります。

WRITE_0379_01

どちらの関数も "-" (ハイフン)のセルは無視します。

数値が入っているセルだけ範囲に入れる場合と、 数値が入っていセルも範囲に入れたい場合で使い分けます。

Excel の COUNT ワークシート関数

Excel の COUNT() 関数は 「数値」のみを数える関数です。

例えば次のような場合、結果は 2 を返します。

WRITE_0378_01

ちなみに COUNTA() は空欄以外のセルを、
COUNTBLANK() は空欄のセルを数えます。

COUNTA()+COUNTBLANK() で全てのセルになります。

Excel の 2 つの値を比較するワークシート関数

Excel には、2 つの値が同じかどうかを判定してくれるワークシート関数があります。 次の EXACT() 関数は 2 つの値が同じ文字列の場合に TRUE になります。

WRITE_0376_01

数値でも同じ文字列になる場合は TRUE です。

他にも 2 つの値が同じ数値かどうかを判定してくれる DELTA() 関数があります。 (この関数は Excel2003 以前ではアドインの「分析ツール」を入れなければなりません)

WRITE_0376_02

DELTA() 関数は TRUE/FALSE ではなく 1/0 を返します。

値が数値に変換できない場合はエラーになります。
文字列でも数値に変換できる場合は数値にして比較します。

Excel の 階乗、順列、組み合わせのワークシート関数

Excel には 確率などの計算で使用する、階乗、順列、組み合わせのワークシート関数もあります。

関数名 説明
FACT階乗
PERMUT順列
COMBIN組み合わせ

まず「階乗」です。
数学では n! と書きます。

WRITE_0374_01

次に「順列」です。
数学では 12P4 のように書きます。

WRITE_0374_02

12P1112P12 は どちらも 12!/1 なので同じになります。

12P11 = 12!/(12-11)! = 12!/1! = 12!/1
12P12 = 12!/(12-12)! = 12!/0! = 12!/1

最後に「組み合わせ」です。
数学では 12C4 のように書きます。

WRITE_0374_03

Excel で対戦結果などを管理する場合に 「組み合わせ」なんかがサッと使えると 便利なんじゃないでしょうか。

Excel の「名前を付けて保存」の「ファイルの種類」の初期値

Excel 2007 を使用していても周りが Excel 2000 や 2003 だと "Excel 97-2003 ブック" 形式で保存する必要があります。

しかし、Excel 2007 の「名前を付けて保存」ダイアログの「ファイルの種類」は 初期値が "Excel ブック" 形式なっています。

「ファイルの種類」の初期値は変更することができます。

まず 左上の丸いアイコンから「 Excel のオプション」を選択します。

WRITE_0368_01

「ファイルの保存形式」を "Excel 97-2003 ブック" に変更します。

WRITE_0368_02

これで「名前を付けて保存」ダイアログの「ファイルの種類」が "Excel 97-2003 ブック" になります。

Excel の TEXT ワークシート関数

Excel ではセルに書式を設定できますが、 TEXT ワークシート関数を使っても同じようなことができます。

書式は次のようになります。

=TEXT(値, 書式)

日本語曜日の書式 "aaa" を指定すると 次のようになります。

WRITE_0366_01

以前書いた HYPERLINK 関数と同様に数式の中で 使用できるのが大きなメリットです。

例えば次のように指定してみます。

=TEXT(B26, IF(YEAR(B26) < 2000, "yyyy/mm/dd", "yy/mm/dd"))

日付の年が 2000 年未満なら年を 4 桁、 そうでなければ 2 桁で表示します。

WRITE_0366_02

このような結果になります。

値に応じて書式を切り替えられるので便利です。

Excel のワークシート上のエラー

Excel には次の #N/A,#VALUE! などのワークシート上に 表示されるエラーがあります。

WRITE_0365_01

エラー 説明
#N/AVLOOKUP関数などで検索にヒットしない場合などに発生します。
#VALUE!計算式に文字列が入ってるなどで計算できない場合に発生します。
#REF!参照先が存在しない場合に発生します。
#DIV/00 で除算した場合に発生します。
#NUM!計算結果が扱えない大きな数字になる場合などに発生します。
#NAME?関数などの名前が存在しない場合に発生します。
#NULL!セル範囲の共通部分が存在しない場合に発生します。

この他に、表示が ### になる場合があります。

WRITE_0365_02

数値を表示するエリアが狭い場合か、日付の計算結果がマイナスになる場合に ### になります。

ISERROR, ISERR, ISNA という関数で エラーを判定することができます。 判定できるエラーは次のようになります。

WRITE_0365_03

Excel の文字を変換するワークシート関数

Excel で、大文字から小文字、全角から半角など 文字を変換するワークシート関数を紹介します。

関数名 説明
ASC全角英数カナを半角にします。平仮名はそのままです。
JIS半角英数カナを全角にします。
LOWER大文字を小文字にします。全角大文字は全角小文字になります。
UPPER小文字を大文字にします。全角小文字は全角大文字になります。
PROPER頭文字を大文字に、それ以外を小文字にします。全角も処理します。

WRITE_0363_01

いずれの関数も「平仮名」など変換対象外の文字は 変換されず、そのまま残ります。

Excel の文字検索するワークシート関数について

Excel には文字検索用のワークシート関数として FIND と FIND があります。 この 2 つの関数の違いは、大文字・小文字の区別と、ワイルドカードが使用できるかどうかです。

関数名 大文字・小文字の区別 ワイルドカードの使用
FINDする不可
SEARCHしない

"abcxyz" という文字列から "xyz" を検索してみます。

WRITE_0362_01

このような結果になります。
検索できなかった場合は、#VALUE! エラーになります。

Excel の文字置換するワークシート関数について

Excel には文字置換用のワークシート関数として REPLACE と SUBSTITUTE があります。

"ABCDE" という文字列の "BCD" を "XYZ" に置換します。

WRITE_0361_01

REPLACE 関数の書式は次のようになります。
開始位置と置換する文字数を指定して置換します。

=REPLACE(文字列, 開始位置, 文字数, 置換文字列)

SUBSTITUTE 関数の書式は次のようになります。

=SUBSTITUTE(文字列, 検索文字列, 置換文字列)

VB などの Replace 関数は Excel の REPLACE 関数ではなく SUBSTITUTE 関数の方と同じ指定なのがややこしいですね。

Excel の HYPERLINK ワークシート関数

Excel では、URL を貼り付けると自動的にハイパーリンクにしてくれる機能があります。 ワークシート関数を使っても ハイパーリンクを作成することができます。

HYPERLINK 関数は、次のような書式になります。

=HYPERLINK(リンク先, 別名)

この関数を使うメリットとしては、ハイパーリンクの生成の有無を数式に組み込めることです。

WRITE_0359_01

このように IF 関数を使って「 "http:" で始まる場合のみハイパーリンクを作成する」と いったこともできます。

Excel のちょっと変わったセル範囲の指定方法

Excel では通常 A1:B3 のようにセル範囲を指定しますが 次のように 青い範囲と赤い範囲を指定することで 共通部の紫の範囲を指定する、という方法があります。

WRITE_0358_01

範囲を半角スペースで区切って並べます。
(上の例では "B2:D6 C5:E8" )

これにより、共通部分が指定できます。 範囲は 3 つ以上でも並べることができます。

Excel の切り上げ/切り捨てするワークシート関数

Excel のワークシート関数には、数値の切り上げ/切り捨てを してくれる関数が色々あります。

WRITE_0357_02

関数名 説明
INT(数値)切り捨てて整数にします
EVEN(数値)切り上げて偶数にします
ODD(数値)切り上げて奇数にします
CEILING(数値, 基準値)切り上げて基準値の倍数にします
FLOOR(数値, 基準値)切り捨てて基準値の倍数にします
ROUNDDOWN(数値, 桁数)指定した桁数で切り捨てます
ROUNDUP(数値, 桁数)指定した桁数で切り上げます
TRUNC(数値 [, 桁数])指定した桁数で切り捨てます
桁数は省略できます
ROUND(数値, 桁数)指定した桁数で四捨五入します

「基準値の倍数」というのは、基準値が 2 であれば、4, 6, 8...のことです。 次のように 100 や 1000, 0.01 などを指定すると桁数を指定したことになります。

WRITE_0357_01

ROUNDDOWN と TRUNC の違いは TRUNC が桁数を省略できることです。

Excel のワークシート関数で文字の棒グラフを表示する

以前、「Oracle で簡単棒グラフ表示」という ネタを書きましたが、Excel のワークシート関数でも同じようなことができます。

WRITE_0356_02

次のように "REPT" 関数を使用します。

WRITE_0356_01

"REPT" 関数の定義は次のようになります。

=REPT(繰り返す文字, 繰り返し回数)

次のようにすると 5 段階評価っぽくできます。

WRITE_0356_03

Excel の 進数を変換するワークシート関数

Excel には、2 進数を 10 進数や 16 進数に変換したり 10 進数を 16 進数に変換したりするワークシート関数があります。

関数は次のものがあります。

関数名 変換前の値 変換後の値
BIN2OCT2進数10,0008進数20
BIN2DEC2進数10,00010進数16
BIN2HEX2進数10,00016進数10
OCT2BIN8進数1002進数1000000
OCT2DEC8進数10010進数64
OCT2HEX8進数10016進数40
DEC2BIN10進数1002進数1100100
DEC2OCT10進数1008進数144
DEC2HEX10進数10016進数64
HEX2BIN16進数1002進数100000000
HEX2OCT16進数1008進数400
HEX2DEC16進数10010進数256

ただし、これらの関数は Excel2007 では普通に使えるのですが Excel2003 以前は「分析ツール」というアドオンを有効にしなくてはなりません。 (有効にするには Office の CD が必要です)

入力後、セルからフォーカスを移動させない

Excel では、セルに入力後、[Enter] を押すと フォーカスが移動してしまいます。 (デフォルトでは下に移動)

WRITE_0351_01

入力後にフォーカスを下以外に移動させたいときは 移動量が増えるので、少し面倒です。

入力後に移動させないためには、[Enter] を押すときに [Ctrl] も一緒に押します。

WRITE_0351_02

Excel で、アラビア数字をローマ数字に変換する

Excel には、アラビア数字 (1,2,3...) を ローマ数字 (I,II,III...) に変関してくれる関数が あります。

次のように ROMAN() 関数を使います。

=ROMAN(A1)

WRITE_0350_01

簡単に変換できます。

WRITE_0350_02

Excel の配列定数

Excel では、数値や文字だけでなく配列も扱うこともできます。

次のように定義します。

{1,2;3,4;5,6}

Excel の配列は、"{}" で括り、"," で列を分けて ";" で行を分けます。 上の定義は次のような 2 次元配列を意味しています。

1   2
3   4
5   6

配列定数は、ワークシート関数で、次の SUM() のように「範囲」を受ける引数に使用できます。

WRITE_0349_01

1 + 2 で 3 になります。

VLOOKUP() でも使用できます。

WRITE_0349_02

配列定数 {1,2;3,4;5,6} を指定していますが これをセル指定で表現すると次のようになります。

WRITE_0349_03

セルを使用しなくても色々できるので結構便利です。

Excel のフィル

Excel には「連続データの作成」という便利な技があります。

WRITE_0280_01

よく上の図のようにマウスで範囲を広げて生成しているのを 見かけるのですが、範囲が広い場合、マウスがスライドし過ぎて かなり下の行まで行ってしまうことがあります。

WRITE_0280_06

これを防ぐというか、 そもそも「連続データの作成」は、『フィル』という機能の中にあるので 編集メニューから選んで実行することができます。

まず範囲を選択します。 このときはドラッグ&ドロップする必要はないので [Shift] キーなどを使ってゆっくり選択できます。

WRITE_0280_05

次にメニューから「編集」→「フィル」→「連続データの作成」と 選択します。

WRITE_0280_02

ポップアップウィンドウが出ます。
1 ずつ加算していく場合はデフォルトで OK です。

WRITE_0280_03

これで連続データが作成できました。

WRITE_0280_04

『フィル』には他にも機能がありますが あまり使うことはないと思います。 ドラッグ&ドロップによる「連続データの生成」で マウスが滑って どうしても上手く選択できないときに この機能を思い出してみてください。

Excel の [Ctrl]+[End] / [End]

Excel で [End] キーは、ちょっと変わった移動です。

Excel では、次のように 「入力された一番右の列」「入力された一番下の行」の 交わるセルを、最終有効セルとして記憶しています。

WRITE_0254_02

デフォルトでは、最終有効セルまでが印刷範囲になります。

[Ctrl]+[End] は、カーソルを最終有効セルに移動させます。

WRITE_0254_03

最終有効セルがどこにあるかわからなくなったときや データの最終行に移動したいときに便利です。

ちなみに、入力した値をクリアしても「入力された一番右の列(下の行)」は変わりません。 最終有効セルを内側に移動させるためには、行や列を削除します。

次に [End] キーだけを 1 回押すと、 右下に次のように "END" と表示されます。

WRITE_0254_01

この状態で カーソルキーを押すと その方向に大きく移動します。
移動する内容は [Ctrl]+[カーソル] と同じです。

WRITE_0254_04

黄緑がカーソルの現在の位置、黄色が各方向の移動です。

値の入ったセルがなければ 行や列の先頭や後尾に、 値の入ったセルがあれば、連続して値の入っているセルの端に カーソルを移動させます。

カーソルの代わりに [Home] を押すと [Ctrl]+{End] と同じで 最終有効セルに移動します。

これら同じ動きの移動コマンドがあるので 自分が使い易いものを選んで覚えると良いと思います。

Excel でシートを Very 非表示にする

Excel では、メニューからシートを非表示にすることができます。

WRITE_0245_01

ただし、この方法の場合、簡単に再表示させることができます。

WRITE_0245_02

別の方法で、「再表示」を表示しないようにすることができます。

まず、どこからでも良いので(下の図は「コードの表示」)で Visual Basic Editor を起動します。

WRITE_0245_03

必要なのは、下の赤枠の「プロパティ ウィンドウ」なので 表示されて居ない場合は [F4] を押して表示します。

WRITE_0245_04

このプロパティウィンドウの一番下の項目に "Visible" があります。 このプロパティを "2 - xlSheetVeryHidden" に設定します。

WRITE_0245_05

これで、シートは非表示になり メニューから見ても「再表示」が不活性なままになりました。

WRITE_0245_06

ちなみに "Visible" プロパティですが、Excel のメニューから 通常のやりかたで非表示にした場合は、"0 - xlSheetHidden" になります。 Excel からでは、"-1 - xlSheetVisible" と "0 - xlSheetHidden" の 切り替えしかできないわけです。

Excel で「名前」の一覧を貼り付ける

Excel で「名前」を付けていると 多くなりすぎて 何が何やらわからなくなるときがあります。 少なくとも私にはあります。

WRITE_0240_01

そんなときに、「名前」で定義されている内容を セルに出力する機能があります。

メニューから「挿入」→「名前」→「貼り付け」を選択します。

WRITE_0240_02

名前の貼り付けウィンドウが出てくるので 「リスト貼り付け (L) 」ボタンをクリックします。

WRITE_0240_03

カーソルの当たっていたセルに 「名前」のリストが出力されます。

WRITE_0240_04

Excel のワークシート関数 PHONETIC

以前、「 Excel の ふりがな」といネタを書きましたが この値を別のセルで取得するためのワークシート関数 PHONETIC があります。

使い方は次のように簡単です。

WRITE_0239_01

平仮名、片仮名は「ふりがな」の設定に依存します。

WRITE_0239_02

通常の「ふりがな」の表示と少し違うのは、 常にセルの文字全ての「ふりがな」が表示されることです。

WRITE_0239_03

左のセル内の「ふりがな」は、「ほんじつ」と「ひがら」だけですが 右の関数セルでは、「ほんじつはおひがらも」と表示されます。

IE で Office2007 形式をダウンロードすると zip になる

Vista 環境の IE 7 で Office2007 形式のファイル (.docs, .xlsx, .pptx) を ダウンロードすると zip ファイルとしてダウンロードされてしまう、という現象が発生しました。

WRITE_0238_01

Web サーバに Office2007 形式用の MIME タイプを設定しないと IE が勝手に中身を見て判断してしまうようです。

追加する MIME タイプは以下のようになります。

Word .docx application/vnd.openxmlformats-officedocument.wordprocessingml.document
Excel .xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
PowerPoint .pptx application/vnd.openxmlformats-officedocument.presentationml.presentation

【参考サイト】
Microsoft - サード パーティのサーバー上のファイル拡張子を登録します。

設定すると Office のドキュメントとして認識されるようになります。

WRITE_0238_02

Excel のゼロを非表示にする書式

以前、シートのオプションで 0 を非表示にする「Excel のゼロの非表示」を 書きましたが、個別に設定するもっと良い方法があったので紹介します。

Excel の数値の書式には ";" (セミコロン) でプラス、マイナスの場合を分けることができます。

0.0;(0)

この書式では、プラスの時は“小数点1桁まで表示”、マイナスの時は“カッコで囲んで表示”になります。

WRITE_0235_01

書式を 2 つに分けた場合、ゼロはプラスの書式で処理されます。

WRITE_0235_02

書式を 3 つに分けた場合、3 つ目がゼロの書式になります。

0.0;(0);[赤]0

この書式では、ゼロのときだけ赤字になります。

WRITE_0235_03

このゼロの書式を空にすることで ゼロを非表示にできます。

WRITE_0235_04

";"(セミコロン) が 1 つの場合と 2 つの場合では マイナス値を扱う書式が違ってくるので要注意です。

0.0;(0);  ← ゼロは非表示
0.0;(0)   ← ゼロはプラスの書式で表示

Excel で 繰り返して使う機能をロック

あなたは知ってる?ダブルクリックだけでできるExcelの小技いろいろ - IDEA*IDEA 〜 百式管理人のライフハックブログ

この記事を読んで知ったのですが、ダブルクリック技の 1 つに 「繰り返して使う機能をロック」という機能があるそうです。

Excel 2000 で試してみたところ、 「書式のコピー/貼り付け」しか確認できなかったのですが とても便利だと感じたので紹介します。

まずは通常の使い方から。

WRITE_0231_01

「書式のコピー/貼り付け」をクリックします。
アイコンは凹んだ状態になります。

その状態で別のセルをクリックします。

WRITE_0231_02

クリックしたセルに書式が貼り付けられます。
同時に「書式のコピー/貼り付け」のアイコンも元に戻ります。

今度は「書式のコピー/貼り付け」をダブルクリックします。
やはりアイコンは凹んだ状態になります。

WRITE_0231_03

ただし、ダブルクリックした場合は、 別のセルに書式を貼り付けても、アイコンが凹んだままになります。

WRITE_0231_04

続けて、他のセルにも書式を貼り付け続けることができます。

WRITE_0231_05

書式のコピペは 結構使用するので覚えておくと役に立ちそうです。

Excel のゼロの非表示

他人の作った Excel で 値 0 を 次のような条件付書式で 非表示にしているシートがありました。

WRITE_0230_01

一部分の 0 だけであれば これでも良いのですが シート全体の場合、 オプションで非表示にすることができます。

「ツール」→「オプション」の「表示」タブに『ゼロ値』という オプションがあります。( Excel2000 の場合)

WRITE_0230_02

このオプションのチェックを外すと、次のようなシートの 0 が・・・

WRITE_0230_03

消えてしまいます。

WRITE_0230_04

このオプションは、設定したシートのみで有効で シートに保存されるので、そのまま人に渡すこともできます。

Excel は、オプションによって シートのみで有効のものや、Excel 全体や ブックで有効なものあるので 難しいです。

Excel の [Ctrl]+[Enter]

Excel の入力系の技の 1 つに [Ctrl] を押しながら入力 (Enter) というものがあります。

それほど使う頻度は高くないと思いますが どちらもよく使用するキーなので 簡単に指で覚えることができます。

まず範囲を選択します。

WRITE_0225_01

次に値を入力します。

WRITE_0225_02

この状態で [Enter] だけを押すと、 通常の“選択範囲内での入力”になり 隣のセルにフォーカスが移動するだけです。

しかし、ここで [Ctrl] を押しながら [Enter] を押します。

WRITE_0225_03

選択していた範囲のセル全てに 入力した値が設定されました。

もちろん、これだけではありません。
このショートカットは、数式を入力するときに真価を発揮します。

例えば、"=row()" を入れてみます。

WRITE_0225_04

行番号が表示されました。

WRITE_0225_05

どのセルにも "=row()" が入るわけですが 当然値が違います。

集計する場合も便利です。

WRITE_0225_06

E13:E15 のようなセル指定も セルをコピーするときと同様に 展開してくれます。

WRITE_0225_07

慣れるまでは、1 つのセルに入力した値をコピーする方が 楽なように感じると思いますが 多くの場合、コピーする範囲は最初から決まっているので 範囲を指定してからこの方法で入力する方が キーを押す回数も少なくて速くなると思います。

Excel の ふりがな

Excel には「ふりがな」を扱う機能があります。

昔からメニューにあるのですが、意外と知られていないようです。

表示すると次のようになります。

WRITE_0220_01

「ふりがな」の値は、セルに値を入力すときに 自動で設定してくれます。 ですので、漢字一文字ずつを違う読みで入力した場合 次のように変な感じに設定されてしまうことがあります。

WRITE_0220_06

Office 2000 の場合、「書式」の中にメニューがあります。

WRITE_0220_02

「設定」では、平仮名や片仮名、表示位置の設定ができます。 「編集」では、現在設定されている値を変更することができます。

WRITE_0220_03

結構重要なことですが、並び替えを行なうときは この「ふりがな」の値が利用されます。 ですので、同じ“生”という漢字を使っても 次のように並んでしまいます。

WRITE_0220_04

テキストエディタなどから貼り付けた場合は 「ふりがな」が設定されません。 次の図の右の列は「ふりがな」が設定されていないため 見たままの並び順になっています。

WRITE_0220_05

Excel から UTF-8 で出力する

Excel のマクロなど UTF-8 で出力する モジュールを紹介します。

UTF-8ファイル作成 for VBA

PostgreSQL の テーブルレイアウトを Excel で作成して Excel のマクロで CREATE 文を生成しているのですが コメント文など 日本語を UTF-8 で出力するのに 利用させてもらいました。

使い方も簡単で、ダウンロードした class ファイルを Excel にインポートして、Open メソッドの代わりに 次のように記述します。

Dim f1 As New TextFile

f1.FileCreate "test1.txt", "UTF-8"
f1.TextWrite "このファイルは UTF-8 でエンコードされています。"
f1.FileClose

リボンの表示モード切替

Word や Excel など MS Office の 2007 には 「リボン」という機能があります。 この機能、 2007 から使い始めたユーザなら 便利なのかもしれないのですが 今までの Office ユーザには どうも不評のようです。 (少なくとも私の周りでは不評です)

そんな話をしているときに 教えてもらった小技なのですが このリボン、タブの部分をダブルクリックすると 『リボン出っ放し』モードと 『タブをクリックでリボン表示、別の場所クリックでリボン非表示』モードを 切り替えることができるのです。

WRITE_0135_01

タブをダブルクリックすると 下のように リボンが非表示になります。

WRITE_0135_02

画面がすっきり広くなりました。

再度タブをダブルクリックすると『リボン出っ放し』モードに戻ります。

リボンは設定でも非表示にできますが、この方法だと どちらにも簡単に切り替えることができるので便利です。

Excelで表の範囲を一気に選択する

Excelで下の図のように表を作っている場合 表の範囲のセルを選択して枠線を付けたい時があります。

そんなときに使えるショートカットキーが、 [Ctrl]+[*]です。

テンキーの "*"(アスタリスク)が使えない場合は、 [Ctrl]+[Shift]+[:]です。([Shift]+[:]が[*]になります)

下の図のように、表の範囲内にカーソルを置きます。

すかさず、[Ctrl]+[*]です。

表の範囲を囲むことができました。

あとは普通に罫線で枠線を付けます。

できあがりです。

このショートカットキーで囲める範囲は、 『Excelが表と認識できる範囲』になります。

つまり、途中の行や列に空きがあったりすると、 Excelは、そこで表が終わっていると判断します。 これは、フィルタや並び替えの時も同じです。 このショートカットキーで、 「Excelがどこまでを表と認識しているか」を 確認してみるのも良いかもしれません。

Excelで複数のセルをお手軽に入力する

Excelで下の "a"〜"f" の様に処理したいセルがある場合 入力の度にカーソルやマウスを使わなくても清む方法があります。

準備として、連続して処理したいセルを「Shift+移動キー」や マウスやのドラッグ&ドロップで選択します。

その後は、[Enter]を押すだけで、下の矢印の順番に フォーカスが移動します。

つまり、入力→[Enter]を繰り返すだけで、選択した範囲内だけを フォーカスがグルグル移動してくれるわけです。

ちなみに、[Shift+Enter]を押すと、逆に移動します。

下のように、マウスで四角形以外の選択をしても その範囲内をフォーカスが移動してくれます。 ただし、マウスで指定する場合は、指定した順番で フォーカスが移動するので注意してください。