数式活用例

セル範囲を指定して文字列を結合する
使用関数:PHONETIC

複数のセルに入力されている文字列を結合するには、&演算子かCONCATENATE関数を使用します。
しかし、このいずれの方法も、それぞれのセルを1つずつ指定していく必要があり、セル範囲を指定することはできません。
セルに入力されているのが、英数字およびカタカナだけの場合は、PHONETIC関数を利用して、セル範囲を対象とした文字列結合を行うことができます。
なお、対象のセル範囲のふりがなの設定で、種類を「ひらがな」に変更すれば、英数字およびひらがなのセルの文字列結合ができるようになります。

=PHONETIC(A1:D1)

A1:D1に入力されている文字列を結合してA3に表示させたい。

PHONETIC関数を利用してセル範囲の文字列を結合した。

このページの先頭へ戻る

漢字を含むセル範囲の文字列を結合する
使用関数:PHONETIC

前項の応用です。
PHONETIC関数では、セルに漢字が入力されている場合、登録されているそのふりがなを返します。
漢字そのものを返したい場合は、このふりがな情報を消してしまえばいいわけです。
具体的には、目的のセル範囲をコピーしていったんメモ帳などに貼り付け、再びExcelにコピー・貼り付けする、といった手順で、ふりがな情報を消すことができます。
なお、対象のセル範囲にかなが含まれている場合は、ふりがなの設定によって、ひらがなまたはカタカナに統一されてしまいます。

=PHONETIC(A1:D1)

ふりがなを表示させている状態。
現在はふりがなは設定されているので、PHONETIC関数を使用しても、漢字ではなくその読みが結合されて表示される。

セル範囲をいったんメモ帳にコピーし、再度このセル範囲にコピーし戻した状態。
ふりがな情報がなくなったので漢字がそのまま結合されている。
なくなったふりがな情報をセル範囲に再設定したい場合は、VBAのSETPHONETICメソッドを使うのが便利。

このページの先頭へ戻る

降順のリストでLOOKUP検索する
使用関数:LOOKUP

LOOKUPは、基本のテーブルまたは配列を検索し、検索値に対応する値を返す関数です。
ある値以上ある値未満という範囲での指定が一覧表形式でできるので、たとえば税金の対象金額から、それに対応する税率を求めるような計算に利用すると便利です。
ただし、LOOKUPは、基本的には昇順に並べられたリストで、その中に入力されている値以上、という形でしか使用できません。
このことはVLOOKUP、HLOOKUPで、引数「検索の型」にTRUEを指定した場合も同様です。
降順に並べられたリストで、その中に入力されている値以下、という形で検索したい場合は、MATCHとINDEXを組み合わせるという手もありますが、ここではLOOKUPを裏から使用するテクニックを紹介します。

=LOOKUP(-D2,-A2:A6,B2:B6)

昇順のリストの例。
D2に入力された順位に応じて、対応する成績が表示される。
A列の順位は、「1〜9」「10〜49」のような範囲を表していると考えられる。

降順のリストの場合は、検索値と検索範囲の正負を反転させることで、「擬似昇順」としてLOOKUP検索ができる。
この例では対応範囲を返しているが、検索範囲の値そのもの(「100」や「90」のような)を返す場合は、さらにLOOKUPの前にもマイナス記号を付ける必要がある。

このページの先頭へ戻る

文字列を比較する

「<」「>」などの比較演算子は、一般的には数値に対して用いられるものと考えられています。文字に対して用いられる比較演算子は、通常、「等しい」ことを表す「=」か、「等しくない」ことを表す「<>」のいずれかでしょう。
しかし、実際には、それ以外の比較演算子も、そのまま(CODE関数で数値に変換するといった操作をしなくても)文字の比較に使用することができます。単独の文字同士だけではなく、文字列同士も比較できます。
「<」か「>」かの判定基準は、基本的に文字コードの順番ですが、かなについてはのような順番になります。ただし、カタカナとひらがなは、状況によってはほぼ同じ文字として扱われます。また、アルファベットに関しては、大文字も小文字も同じと見なされます。
たとえば、次の2つの数式の場合、上はTRUE、下はFALSEになります。

="マリ"<"まり"
="マリー"<"まり"

同じ文字、同じ文字数であれば、カタカナのほうが「より小さい」と見なされる。

「まりー」と「まり」であれば、文字数の多いほうが「より大きい」と見なされるが、「マリー」と「まり」であっても、「マリ」と「まり」がほぼ同一の文字列という扱いになり、2文字である「まり」が「より小さい」と見なされている。

このページの先頭へ戻る

文字列を条件付き集計する
使用関数:COUNTIF

文字列を対象としたCOUNTIF関数やSUMIF関数の[検索条件]の指定にも、「<」や「>」などの比較演算子を使用することができます。
次の数式は、B2:B10のセル範囲の中で、レベルが「B」以上、つまり「A」または「B」である会員の数を求めるものです。

=COUNTIF(B2:B10,"<=B")

「レベルがB以上」ということは、Bと同じかまたはそれよりも「小さい」文字列という条件指定になる(アルファベット以外の文字種はないという前提)。
なお、「<=B」の部分を「<C」としても同じ結果になる。

SUMIF関数や、Excel 2007のCOUNTIFS関数、SUMIFS関数、AVERAGEIF関数、AVERAGEIFS関数などでも、同様に文字列と比較演算子を使用した条件が指定できます。

このページの先頭へ戻る