評論やエッセイ随筆の情報屋

評論やエッセイや随筆などの情報屋です

エクセル関数の豆知識



エクセル関数の使い方



下記にいくつかのエクセルの関数の使い方をご紹介します。

1.平均値を求める関数

【関数】
「=AVERAGE(数値1,数値2,数値3,・・・)」

【関数の意味】
()内に指定された数値の平均値を求めます。
このとき文字列は計算対象になりません。

【使用例】
・「=AVERAGE(10,6,9,4)」と指定すると、平均値の「7.25」が取得されます。
・「=AVERAGE(A1:A6)」と指定すると、A1からA6に指定された数値の平均値が取得されます。

2.値の種類を求める関数

【関数】
「=TYPE(値)」

【意味】
()内に指定された値の種類を返す関数です。

【返り値】
値が未入力のとき:「1」
値が数値のとき :「1」
値が文字のとき :「2」
値が論理値のとき:「4」
値がエラーのとき:「16」
値が配列のとき :「32」

の値のいずれかが返ります。

3.除算の余りを求める関数です

【関数】
「=MOD(数値1,数値2)」

【意味】
数値1÷数値2の「余り」を返します。ただし、数値2に「0」を指定するとエラー「(#DIV/0!)」となります。

【使用例】
・「=MOD(10,4)」を指定すると、10÷4=2余り2の余り2が返ります。
・「=MOD(100,25)」を指定すると、100÷25=4余り0になるので「0」が返ります。
・「=MOD(A1,A2)」を指定すると、セルA1÷セルB1の余りの値が返ります。
・「=MOD("ABC",2)」を指定すると、文字列は割れないのでエラーが返ります。








エクセルの関数(文字列置換)



【関数】
「=SUBSTITUTE(元の文字列,検索文字,置換文字,対象)」

【意味】
元の文字列の一部または複数文字をある文字に置換する関数です。
検索文字に一致した文字を置換する事が可能です。

【引数の意味】
元の文字列:置換元の文字が含まれている文字を指定します
検索文字 :「元の文字列」の中の置換したい文字を指定します。
置換文字 :置換したい文字を指定します。
対象   :置換対象文字が複数存在するとき、何番目の文字を置換するのかを指定します。省略時は全ての文字が置換対象になります。

【使用例】
・「=SUBSTITUTE("文字2003","エクセル","数字")」と指定した場合、「文字2003」という文字列の「文字」という文字を「数字」という文字に置き換えます。
 結果は「数字2003」という文字が返ります。

・「=SUBSTITUTE("文字2003","2003","数字")」と指定した場合、「文字2003」という文字列の「2003」という文字を「数字」という文字に置き換えます。
 結果は「文字数字」という文字が返ります。

・「=SUBSTITUTE("文字2003","字","数字")」と指定した場合、「文字2003」という文字列の「字」という文字を「数字」という文字に置き換えます。
 結果は「文数字」という文字が返ります。

使用方法が分かりましたでしょうか?
データを使う上で使う頻度が多い関数だと思いますので参考になさってみてください。








エクセル関数の使い方



1.指定された年月日から「年」を抽出します。

【関数】
「=YEAR(シリアル値)」「=YEAR(指定年月日)」

【意味】
()内に指定された値から「年」のみを抽出します。

【使用例】
現在の日付が2007年12月31日の場合
セルA1に、2006年3月10日と指定された場合

・「=YEAR(NOW())」と指定した場合、現在日付の「2007」が取得されます。
・「=YEAR(TODAY())」と指定した場合、今日の日付の「2007」が取得されます。
・「=YEAR(A1)」と指定した場合、セルA1に指定された日付の年「2006」が取得されます。
・「=YEAR("1970/04/01")」と指定した場合、「1970」が取得されます。
・「=YEAR(365)」と指定した場合、シリアル値である1900年12月31日の「1900」が取得されます。


2.指定された値の何番目かの値を取り出すための関数です。

【関数】
「=CHOOSE(取出し番号,値1,値2,・・・,値29)」

【引数の意味】
取出し番号:1〜29(最大29)を指定します。
値1〜29:最低2個の値を指定します。

【使用例】
・「=CHOOSE(4,"A","B","C","D")」と指定します。
 結果は、4番目に指定されている「D」が抽出されます。
・「=CHOOSE(5,"A","B","C","D")」と指定します。
 結果は5番目の値は無いので「#VALUE」というエラーになります。








エクセルの関数(文字列操作)



1.文字や数値、セル、計算結果などを一つの文字列として結合させる事が出来る関数です。結合できる内容は最大30個です。

【関数】
「=CONCATENATE(値1,値2,・・・,値30) 」

【使用例】
・「=CONCATENATE(1,2,3,4)」と指定します。()内に記述されている値が結合されますので、「1234」と結果が返されます。
・「=CONCATENATE(100,"個")」と指定します。()内に記述されている数値&文字列が結合されますので、「100個」と結果が返されます。

この「CONCATENATE」という関数と同じ働きをするものに「&」というものがあります。使い方は「1&2&3&4」と指定するだけです。これで「1234」と結果が返って来ます。
こちらの方が簡単に使えるのでいいと思います。

2.文字列を繰り返して結合させた値を返す関数です。

【関数】
「=REPT(文字列,繰返しの回数)」

【引数の意味】
文字列   :繰り返したい文字列を記述します。
繰返しの回数:指定した文字列の繰返し回数を指定します。
       但し、文字列の結果が32767文字以上になるとエラー

【使用例】
・「=REPT("もし",2)」と指定し、"もし"を2回繰り返しますので、「もしもし」と返されます。
・A1セルに10と入力されているとします。「=REPT("a",A1/2)」と指定すると、"a"という文字をA1/2の計算結果、つまり10÷2の計算結果、「5」回繰り返しますので「aaaaa」という値が返されます。








エクセル関数(合計に関する関数)



1.合計値を求めるための関数をご紹介します。

【関数】
=SUM(数値1,数値2,数値3,・・・)

【引数の意味】
数値1,数値2,数値3のように()内に記述されている全ての数値を合計します。

【使用例】
・「=SUM(1,2,3)」と指定、「6」と結果が返ります。()内の数値を合計しています。
・「=SUM(6-4,3*5)」と指定、「17」と結果が返ります。()内の計算結果をそれぞれ合計します。
・「=SUM(A1:A6)」と指定、セルA1,A2,A3,A4,A5,A6の値を合計した結果を返します。
・「=SUM(A1:A3,B1:B3)」と指定、セルA1からA3までの合計値、セルB1からB3までの合計値を合計します。

2.条件付の合計値を求める関数をご紹介します。

【関数】
=SUMIF(判断する範囲,条件指定,合計する範囲)

【関数の意味】
条件指定をした値に合致する値の合計値を求めます。

【引数の意味】
判断する範囲:条件に対して比較をする値をセルの範囲で指定します。
条件指定  :値を合計する条件式を指定します。
合計する範囲:実際に合計をする値が入力されている範囲を指定します。

【使用例】
・「=SUMIF(A1:A3,"ABC",B1:B3)」と指定、A1からA3の範囲内に"ABC"の文字列がある場合のB1からB3の合計値を求める。


以上、合計値を求める関数について二つご紹介しました。参考にしてみてくださいね。








エクセル関数(MATCH編)



位置検索をするための関数をご紹介します。

【関数】
=MATCH(検索する値,検索する範囲,検索する方法)

【意味】
検索する範囲の中から検索する値を探し出して、何番目にあるのかという位置を求める関数になります。

検索する方法によっては、「#N/Aエラー」になることがあります。このときは検索する値が範囲内にない時に出る場合があります。

【引数の意味】
検索する値:検索したい値を直接指定、または検索したい値が入力されているセルを指定します。値には文字列、数値などが指定できます。

検索する範囲:検索したい値が入力されている場所をセルの範囲指定で指定します。

検索する方法:0→検索する値と完全に一致する値を求めます。
       1→検索する値に近い値の位置を求めます。
       (省略時は「1」指定になります)
       〜1→昇順に並んでいる値に対して検索できた位置を求めます。

以下に使用方法としての例を挙げますので参考にしてください。

【例】
行 A列
1  1
2  3
3  16
4  20
5  22
6  30
7  35
8  40

「=MATCH(16,A1:A8,0)」と指定します。

セルA1〜A8の中に「16」という数字は3番目にあるので、返る数字は「3」と返って来ます。


次に、「=MATCH(25,A1:A8,0)」と指定した場合はセルA1〜A8の中に「25」という数字は無いので「#N/A」と返って来ます。

まだ使用方法はありますが、上記の例のように指定すると検索できますので参考にしてみてください。








データを正しく取り込むには?



エクセルにデータを取り込むときに、「'」などの文字が含まれていると「NULLが不正」という感じで取り込むことが出来ません。

例えば、「'12'34」という文字を取り込むときに、2と3の間のシングルクォーテーションは置換作業などで取り除く事が出来ても先頭のシングルクォーテーションは取り除く事が出来ないので取り込むデータ数が多ければ多いほど、手作業で取り除く事が困難になってきます。

これを解決するためには、以下の方法があります。

セルA1に「'1234」と入力されている場合、セルB1に「=A1」と指定してセルB1を値の貼り付けをすることで先頭のシングルクォーテーションが除去できます。ただし、この方法は数字が文字列扱いになってしまうのでそれで不具合が出るようだとあまりお勧めできません。

次の解決方法としては、セルB1に「=VALUE(A1)」と指定し、セルB1を値の貼り付けをするということです。VALUEを指定する事で数字として値を扱ってくれます。

何かの為に参考に出来るサイトとして以下のサイトをご紹介します。
http://www.relief.jp/itnote/archives/000321.php

※値の貼り付けの方法は、関数指定して表示されているセルをコピーします。右クリックで指定して貼り付けを選択し、「値の貼り付け」で貼り付けると関数が取り除かれ表示されている文字(数字)だけを貼り付けてくれます。








エクセル関数(検索機能)



以下のようなエクセルで行いたい場合の方法をご紹介します。

【問題】
A列に入力されている複数の数字から、最小値を求めB列に表示させたい。
(例)A1セル「100*30*5*10」
   B1セル「5」

【検索方法1】
1.対象となるセル(この場合A1セル)を選択します。
2.メニュー → データ → 区切り位置 → カンマやタブ を選択し「次へ」
3.区切り文字の所の指定を「その他」→「*」と入力で、数字が4つに分かれます。
4.区切られた数字の範囲をセル指定し、「=MIN(セル範囲)」と入力すると最小値が検索されます。

【検索方法2】
マクロで関数を作成しそれを指定する方法です。
1.ユーザー定義関数を使用します。
2.メニューより「挿入」→「標準モジュール」を選択
3.VBE画面が開いたら以下のコードを記述します。
 Function mojimin(Target As Range) As Variant
 Dim A As Variant, B As Variant
 Dim i As Double

 A = Split(Target.Value, "*")
 ReDim B(0 To UBound(A))
 For i = LBound(A) To UBound(A)
  B(i) = CDbl(A(i))
 Next
 mojimin = WorksheetFunction.Min(B)
 End Function

4.最小値を表示させたいセルに「=mojimin(A1)」と指定します。


上記二つの方法のいずれを使っても最小値が表示されると思いますので参考にしてみてください。








エクセル関数(COUNTIF編)



エクセルの関数の中に、指定条件に合致するセルの個数をカウントすると言う「COUNTIF関数」というのがあります。
「=countif(引数1,引数2)」という使い方をします。

【関数の説明】
引数1で指定された範囲の中から、引数2で指定された条件のセルがいくつあるか合計個数を返す関数です。

【引数の説明】
引数1:セル範囲の指定をします
引数2:カウント条件を指定します

単純にこの「COUNTIF関数」を使用するときは指定する条件は1つですが、複数条件指定する場合にはどう設定したらいいの?と疑問に思う方もいると思います。

解決方法としては色々ありますが、一致させる条件がセルの完全一致ならばワーク的な作業列を作成して、そこを利用してCOUNTIF関数を実行すると言うのが一番簡単だと思います。

どういうことかと言いますと、第一条件が書いてあるセルと、第二条件が書いてあるセルを「=セル1&セル2」で文字列結合します。その結合したセルに対して「COUNTIF関数」を記述すればいいという訳です。
(例)
列  A   B   C
  条件1 条件2 結合
上記例の場合、列Cに「=条件1&条件2」と結合させる関数を記入します。これで列Cには結合された文字列が表示されるようになります。列Cに対して「COUNTIF」を使用するようにする。

関数を使い慣れていない方だと、あるデータだけでなんとかしようと頑張ってしまいがちですが、この例のようにデータとデータを結合させて判断をするという事も可能です。








エクセルの関数はすごく便利



エクセルには関数と言うのがあって、これはものすごく便利なものなのです。どう便利かというと、データーベースが操作できたり顧客管理や在庫管理、売上管理などもできちゃったりするのです。これだけ聞くとエクセルの関数ってすごく難しそうに思うかもしれませんが決して難しいものではないことをご理解してもらいたいのです。

例えば売上管理ですが、以下の関数だけで出来ちゃうくらい簡単だって思ってほしいです。
sum関数  :合計値集計
average関数:平均値取得
count関数 :個数合計集計
vlookup関数:文字列検索
上記の関数を使用するだけで売上管理、仕入管理、粗利益計算などが出来てしまうのです。すごく簡単ですよね。

また、Excelの関数は関数を頭で覚えていなくても、こういったことが出来ないかなと本やサイトなどで調べるだけで色々使用例など調べることが出来るのでものすごく便利だなと思います。

エクセルの関数をセル上で使用するにはある決まりがあります。それは式(関数)の先頭に「@」または「=」を付けて始めなければならないということです。更に関数仕様対象のセル、範囲を指定しなければなりません。
関数に引き渡す値の事を「引数」といいます。この引数を元にしてそれぞれの関数を計算して、計算結果を返してきます。この引数には数値や文字列、エラー値、セル参照などを指定します。

こう考えていくと関数を使うことも難しく考えなくても出来ちゃいますよね。本当に便利な機能だと思います。後は慣れと勉強だけだと思います。








エクセルの関数は凄い



エクセルを使っている人は分かると思いますが、Excelって仕事でも日常でも請求書だったり家計簿だったりと使用することって多いと思うんです。そのExcelには表上にみられる数字の形式だけでなく関数というのが用意されていて簡単に使えるものから高度なものまで幅広くあります。
例えばですが、関数には以下のような種類の関数が用意されています。
・文字列操作
・日付/時刻関係
・検索/行列
・数学/三角
・外部
・財務
・情報
・論理
・統計
・エンジニアリング
・データーベース関係
などこれ以外にもたくさんの関数があります。

Excelというのは表計算ソフトです。一昔前の表計算ソフトというとlotus1-2-3や忍者などといったものがありましたが、現在のExcelを使うことで複雑な計算などが可能になり、経理一般のほとんどをこなすことが出来ると思います。またパソコンがこれほどまで普及した要因として関数が使えるExcelの登場があったからなのではないかと思います。まぁ他にインターネットが普及したからという説も多聞にありますが・・・

普段Excelを使っているだけでも、関数を使う時は「if関数」「DATE関数(日付)」「TIME関数(時間)」などさまざまな関数を使っています。関数はものすごくいっぱい用意されていますので一気に覚えるのではなく、徐々に本やサイトなどで調べながら目的に合った関数を調べて使用例などを参考にして覚えていくのがいいと思います。








日付から曜日を求めるには



エクセルでの関数で、日付から曜日を求めるといった処理は度々使われると思います。以下に曜日を求める方法として以下の二つの方法をご紹介したいと思います。

まずはエクセルの関数で求める方法ですが、A1セルに日付が入っているとしてA2セルに曜日を表示させたい場合、A2セルで「=TEXT(A1,"aaa")」「=TEXT(A1,"aaaa")」などの関数を入力してください。"aaa"または"aaaa"というのはセルの曜日の書式設定のことで「ユーザー定義」しているのと同じ状況を指しています。

次に関数を使わないで求める方法ですが、どこでもいいのですが例えばA1セルに日付を西暦で入力してください。その入力したセルを選択し右クリックしメニューの「セルの書式設定」を選択します。ここの「表示形式」→「ユーザー定義」と選択、「種類」のところに下記のような定義文を記入してみてください。

2007年12月1日を入力した場合
・m"月"d"日("aaa")"      → 「12月1日(土)」と表示されます。
・ggge"年"m"月"d"日("aaaa")" → 「平成19年12月1日(土曜日)」と表示されます。
・yy/m/d(ddd)          → 「07/12/1(Sat)」と表示されます。
・yyyy/mm/dd(dddd)       → 「2007/12/01(Friday)」と表示されます。

使用上の注意点としては、全角文字を表示させたい時は""(ダブルクォーテーション)で囲むように入力してください。








エクセル関数(WEEKDAY編)



エクセルの関数を使って日付に対する曜日を表示させて見ましょう。

使用する関数ですが、例えばA5セルに入力されている日付に対する曜日を取得したい場合は、「=WEEKDAY(A5)」と記述するだけで曜日が取得できます。とても簡単ですよね。しかしこれだけだと、A5セルに日付が入力されていない場合、空白エラーとなってしまいますので、これを表示させないために「=IF(A5="","",WEEKDAY(A5))」というようにIF関数を使って曜日を表示させます。意味としてはA5セルに何も入力されていない場合は何も設定しない、そうじゃない場合は曜日を設定するというような関数を使用したほうがいいと思います。

またこの関数を使用する上での注意点ですが、関数を入力するだけだと曜日に対する数値だけが取得されてしまいますので関数を入力するセルの書式を曜日に変更しなければなりません。
変更方法ですが、曜日を表示させたいセルで右クリックをして、表示されたメニュー→「セルの書式設定」→「表示形式」→「ユーザー定義」を選択します。
「種類」→「G/標準」のところを削除して「aaaa」と入力→「OKボタン押下」で設定完了です。

また、上記に記述したIF関数を使うようなエラー処理ですが万が一の場合を兼ねて、日付の関数の時だけじゃなく何の場合でもエラー処理は入れておいた方がいいと思います。

これで曜日がきちんと表示されるはずです。参考にしてみてください。








DATEDIF関数が表示されない?



エクセルの関数を使って年齢計算を行う時にDATEDIF関数というのを使ったりしますが、この関数を使う時に「関数の挿入」→「関数の貼り付け」のダイアログボックスから表示させようとすると、どこにも表示されていませんよね。
知らない方だと、何か特別な設定が必要なんじゃないか?と思ったりもしますよね。でもどのサイトにもこの関数が表示されないということは明記してあると思います。ですが、直接関数を入力する分には全く問題が無く使用できるのです。

エクセルのヘルプ機能に関しても2000だけDATEDIF関数が記述されていますが、その他のバージョンだとヘルプにさえも出てこない関数ということになります。なぜこのような関数があるのかというと、多分ですがLOTUS1-2-3のような他の表計算アプリケーションとの互換性を取るために用意された関数というだけなので、ウィザードには表示されないということのようです。

ですので、初心者の方が年齢計算したいなって思ってヘルプ等を探しても決して探し当てることが無い関数ということになります。しかし、この特殊な関数のDATEDIFですが、icrosoft Usersの「年齢や勤続年数を求める『DATEDIF』」という初心者や中級者を対象にしている記事には利用例などが載っていたりするんですよね・・・
紹介するくらいならちゃんとエクセル上にも対応させてくれれば利用もしやすいのにって思ったりしますよね。








エクセル関数(DATEDIF編)



エクセルを使っていると、生年月日から年齢を算出したり、勤続年数などの経過日数などを計算したりというのはよくある事です。それについての説明をしているサイトも山ほどありますが、中には間違った説明をしているサイトもあるのです。

例えば生年月日から年齢を算出する例ですが、単純に生年月日と算出したい日付を引き算して出た年数に対してユーザ定義書式によて「yy歳」って設定するだけで大丈夫などと書いてあるサイトとかあるのですが、この計算式だと誕生日の次の日にならないと年齢が加算されないので計算式の調整が必要になります。

ですので、誕生日に年齢を重ねるという計算をしたいのであれば引き算調整じゃなく、関数を使って算出した方が間違いとか無くていいと思います

下記に年齢計算を行う関数をご紹介します。

A1セルに年齢算出基準日、B1セルに生年月日、C1セルに年齢を表示させる場合の関数例
C1セルに対して「=DATEDIF(B1,A1,"Y") 」と入力してください。そうすると、C1セルに年齢が表示されます。

【DATEDIF関数】
第1引数:開始日
第2引数:終了日
第3引数:算出単位
"Y" : 期間内の満年数
"M" : 期間内の満月数
"D" : 期間内の日数
"YM" : 経過した1年未満の月数
"YD" : 経過した1年未満の日数
"MD" : 経過した1月未満の日数

使用上の注意ですが、この関数は「関数の挿入」→「関数の貼り付け」から行うダイアログボックスには表示されていない関数ですので注意してください。








エクセル関数の日付の互換性



エクセル関数では、実在しない日付の「1900年2月29日」を日付として認識してしまうという作りになっています。
これは何故かというとグレゴリオ暦の日付の理論として「4で割り切れる年を閏年とするが、100で割り切れる場合は閏年としない、でも400で割り切れる年は閏年とする」という理論になっています。

この理論上でいくと1900年は閏年にはなりません。従って「1900年2月29日」という日は存在しないことになります。しかし、Excel上では「1900年2月29日」という日付はシリアル値「60」の値として認識してしまうのです。ということになると「1900年3月1日」以前とそれ以降の日で1日ずれが出てくるということになります。

まぁ1900年なんて古い日付を計算することなんてめったに無いとは思いますが、もし計算する場合には注意するようにしてください。

何故こういうことになるかというと、WEEKDAY関数をExcelで使用すると「1900年3月1日」以前の曜日が正しく認識されないという結果になってしまうという理由に、Excelの日付に関する関数や機能は他の表計算ソフトと互換性が取れているらしいのですが、1900年に関してだけは閏年として解釈するような機能になっているようです。

多分、Excelが出始めた当時、Lotus 1-2-3からシェアを奪い取りたかったExcelが急いで互換性を満たしたところ変なところで間違いを犯しちゃったといったところでしょうか?








エクセルの関数を使って曜日を求める



エクセルで入力された日付から関数を使って曜日を算出すのには、色々な方法があります。

まずは関数以外で「書式設定」だけで表示させる方法ですが、例えばセルA1に日付を入力します。曜日をセルB1に表示させる場合はセルB1に「=A1」と記述します。これだけだとセルA1に記入した日付と同じ日付が表示されますので、「書式設定」→「ユーザー定義書式」を選択、「aaa」と設定すると曜日が表示されます。
これが一番簡単な曜日の表示方法だと思います。
そうです。曜日を表示させるには関数は必要ないのです。

しかし、マクロでのプログラム上などで曜日を求める関数を使いたい場合は以下のように記述してみてください。

セルA1に日付が入力されている場合、セルB1に曜日を表示させるにはセルB1に「=WEEKDAY(A1)」と記入し、セルB1の書式設定をしてください。

更に、上記の例で行く場合、書式設定の分も一緒に行う関数などもあります。セルB1に「=TEXT(WEEKDAY(A1),"aaa")」と設定してみてください。これで書式設定を行うことなく曜日が表示されると思います。

どちらでも皆さんが使いやすい方法で使っていただけるのがいいかと思います

また、VLOOKUP関数・CHOOSE関数を使って表示させるという技も見たことがありますがあまり使っている人はいないので、参考にしなくてもいいと思います。

以上、曜日を表示させる方法として何例かあげましたので参考にしてみてくださいね。








エクセル関数の説明



エクセルで関数を使うことは多いと思います。以下によく使われると思う関数をいくつか上げますので参考にしてみてください。

【IF】(論理関数)
 意味:対象となる条件式の結果によって値を返します。

【CONCATENATE】(文字列操作関数)
 意味:文字と文字を結合して1つの文字列にします。

【LEFT】(文字列操作関数)
 意味:指定された文字数分の文字を文字列の左側から取得します。

【RIGHT】(文字列操作関数)
 意味:指定された文字数分の文字を文字列の右側から取得します。

【MID】(文字列操作関数)
 意味:文字列の、指定された位置から文字数分の文字を返します。

【FIND】(文字列操作関数)
 意味:指定した文字が文字列の左側から何文字目かの値を返します。

【SUM】(数学関数)
 意味:指定範囲の値の合計値を返します。

【SUMIF】(数学/三角関数)
 意味:条件に一致する指定範囲内の値の合計を返します。

【TEXT】(文字列操作関数)
 意味:数値を文字列として書式設定します。

【SUBSTITUTE】(文字列操作関数)
 意味:指定文字列中の指定された文字を、指定した文字に置換します。

【MAX】(統計関数)
 意味:指定範囲中の最大値を返します。

【MIN】(統計関数)
 意味:指定範囲中の最小値を返します。

【NOW】(日付/時刻関数)
 意味:現在の日付、時刻をシリアル値で取得します。

【CHOOSE】(検索/行列関数)
 意味:値が入っているリスト内から指定された値を取得します。








エクセル変換したデータをエクセルで文字を認識させるためには



アクセスなどのデータベースで作成したテーブルのデータをダウンロードではなくアクセスのマクロ「エクセル変換」という機能を使ってエクセルに落とした場合、エクセルシート側で関数(例えばVLOOKUPやSUMIFを使っての集計表などの作成)を使っている場合、「#N/Aエラー」とセル上に表示される場合があります。

アクセスからエクセル変換されたデータというのは文字認識というのができないということなのか?と思われる方とかいると思いますが、こういった場合ですが、アクセスからエクセル変換した場合の数値ですが、書式設定が「標準」となっているならばもしかしたら数値データの場合、エクセルでは右詰表示されるところが、アクセスからの変換データだと左詰で表示されているかもしれないことをまずは確認しましょう。この場合ですが、数字を文字列としてエクセルが認識しているので数値扱いされずに関数が認識できないという事象が発生する可能性があります。

ですので、面倒だとしても一つ一つの関数式を改めるか、文字列となった数値を数値扱いに修正して貼り付けなおす必要があると思います。これで面倒だという場合は場合によってですが、「VALUE関数」を使って対処が可能になります。

大体は数字が文字列扱いになったことで関数が認識できなくなったというパターンが多いと思いますのでそこの書式を確認し、数値に修正しもう一度参照してみるようにしてください。








エクセル関数がよく分かるサイト



エクセルの関数を今から勉強したいと思っている方、エクセルをちょっとやっているけど今更誰にも聞くことが出来ず調べたいと思っている方、エクセルの関数が勉強できるインターネット上のサイトがありますのでご紹介しますね。

【初心者向けエクセル関数が勉強できるサイト】
●超初心者向け:SUMとIF
 ・http://t_shun.at.infoseek.co.jp/My_Page/Excel_Chair/chair_menu.htm
●初心者向け:「エクセルの基礎」
 ・http://homepage1.nifty.com/kenzo30/excel_kiso2.htm
●少し慣れてきた初心者向け:「エクセル関数」
 ・http://t_shun.at.infoseek.co.jp/My_Page/Excel-FNC/fnc_title.htm
 ・http://members.at.infoseek.co.jp/tatuken/EXCEL_MAIN.htm

●エクセルの定番サイトといったら:「エクセル技道場」
 ・http://www2.odn.ne.jp/excel/waza/function.html

●質問したい事があったら:
 ・http://cgi.fuji.ne.jp/~fj2094/cgi-bin2/wwwlng.cgi

など、さまざまなものがあります。
用途に応じて使い分けてくださいね。

快適なエクセル関数ライフを満喫してください。








エクセル関数を使って判断式を記述する



エクセルのデータに、以下のようなデータが記述されている場合があるとします。

【エクセル上のデータ】
A列  B列  C列
 ア   A  ア 
 イ   a
 ウ   A
 エ   S
 オ   P
 カ   W
 キ   G
 ケ   B
 コ   H

セルD1のところに「=IF(VLOOKUP(C1,A1:B9,2)="A","○","×")」と記述したとします。
意味としては、A1〜B9の範囲内を元として、A列の中に、セルC1に記述されている「ア」という文字がある場合の左側から2列目、つまりB列の文字が「A」ならば「○」をセルD1に表示させます。

つまり、セルC1の値がア,イ,ウの場合は、「○」を、セルC1の値がア,イ,ウ以外の場合は「×」をD列内に表示させましょうという関数になります。

しかし、難点はB列の値を見ても分かるとおり、大文字小文字のAとaの区別をつけられないということです。
「A=CHAR(65)」なので、「=IF(VLOOKUP(D1,A1:B9,2)=CHAR(65),"○","×")」としても大文字小文字の区別をつけることが出来ません。

もし、大文字小文字の区別を付けたい時ですが、「A=65」と指定することができますので、「=IF(CODE(VLOOKUP(D1,A1:B9,2))=65,"○","×")」と指定すると大文字小文字を区別して判断してくれます。
この関数式で判断すると、セルC1の値がア,ウの場合は、「○」を、セルC1の値がア,ウ以外の場合は「×」をD列内に表示させましょうという関数になります。








エクセルの関数というのはどういうときに使われる?



エクセルの関数というのは一体どういう時に、どんな風に関数を使う物なのでしょうか?よく掲示板などの質問で、「こういう計算をエクセルでやりたい」って問いに対して「こんなのはいかがでしょうか?」という風に色々な関数式が出てくるので仕事でも実際に使えるんじゃないか?なんておもってしまいます。

しかし、その関数をどの場面でどういう風に使っていっていいのか分からないのです。

エクセル関数は使いたいけど使い方が分からないという疑問をもっている方は大勢いると思います。

例えばこんな場面で使ってみるのはいかがでしょうか?仕事場で、勤務表など出勤時間と退社時間を記入して勤務時間を割り出すようなシートを関数などを使って作ってみるとか、家で使う場合なら、家計簿などの収入支出などを計算して割り出すようなシートを関数を使って自分が使いやすいように使ってみるとか、目標を持って作りあげるとなんとか頑張って作り上げられるものです。

後は、仕事上請求書など何回も使われる資料だとしたら一度時間をかけて作っておくと次回からは金額や日付を入力するだけで後は印刷するだけという感じでフォーマットが出来上がると思います。こうやっていくと周りの人からも「こういう風に変えられないかな?」「もっとこうならないかな?」とか問題をもらうようになってくるので、段々と知識も付いてくると思います。

まずは簡単に資料になるものからエクセルを使っていくようにしてみてはいかがでしょうか?








エクセル関数の読み方は?



エクセルを仕事でもプライベートでもよく使う人は、簡単な関数も結構使っていると思います。例えばIFとかSUMとか・・・
ここで疑問があるのですが、それぞれの関数の読み方って皆さんどうしているのでしょうか?そういう本などあるのでしょうか?

という疑問があります。

簡単に言うと、IF(いふ)、SUM(さむ)というように読み仮名が振っている本ということですよね?

関数辞典のようにエクセルの関数に関する本はいっぱい出版されていると思いますが、多分参考になるであろう本が以下のものですので参照してみてください。
・http://www.shoeisha.com/book/Detail.asp〜bid=1294
・http://www.shoeisha.com/book/Detail.asp〜bid=1287

でも、実際の所を言うと、使うご自身が分かるのなら読み方なんてどうでもいいと思います。いつも日常的に使う関数だけ皆が通じるような言葉で読んでいたらいいんじゃないかと思います。

実際に、エクセルの関数というのは数百種類あると言われています。通常の他に専門的な関数(銀行系、測量系、会計系など)全ての関数を把握、ましてや読み方も全て把握するのはかなり難しいと思います。

頑張って分厚いエクセルの関数の本を買ってみたのですが、これだと読むのも調べるのも大変だと思うのでネットで検索して調べちゃったりもします。そこに読み方が書いてあるかもしれませんよ。

読み方よりも先に中身、使い方を把握しましょう。








エクセル関数(CUMPRINC編)



エクセルの関数で、CUMPRINC関数というのがあるはずなのですが使おうと思って「挿入」→「関数」→関数の分類で「財務」というのを選択しても一覧表に載っていない場合があります。

こういう場合ですが、分析ツールのアドインをエクセルに組み込む必要があると思います。以下のように実行してみると使用できない関数も使えるようになると思いますので参考にしてみてください。

1.エクセルを起動する
2.メニューバーの「ツール」→「アドイン」を選択する
3.ダイアログボックスの「分析ツール」というチェックボックスの所にチェックを入れる。
4.OKボタン押下

と上記のように実行してみてください。

上記のように、「アドイン」と注記がある関数というのはかなりの数が存在します。これは専門的な関数を使う場合にかなり該当されると思います。

以下のアドイン関数を参考にしてみてください。
【対立組み込み関数】
・http://kokoro.kir.jp/excel/addin.html〜

【エクセルのアドイン関数】
・http://ccfa.info/kakucyousi/xyz/x/xla.html

【アドインに変換】
・http://www.aa.alpha-net.ne.jp/pcfriend/Excel/Addin.htm

【隠し関数】
・http://www.takenet.or.jp/~hayakawa/excel0/u-tanexcel26.htm








複数条件でデータ抽出したい



複数条件を指定して、大量データの中からデータを抽出する場合ですが、エクセルの関数でも可能ですが、もっと簡単に行うにはフィルタオプションを設定してみるのが、簡単だと思います。

以下のようにしてフィルタを使ってデータを抽出してみてください。

1.シートの余白部分に抽出したい条件を入力してみてください。
  例えば、項目名が「住所」だとしたら、条件には「北海道」「青森」のように都道府県を入れるようにしてみてください。
2.メニュー→「データ(D)」→「フィルタ(F)」を選択→「フィルタオプションの設定(A)」を選択して、データが入力されている範囲を全て指定します。
3.ダイアログボックスが表示されたら、「抽出先」内の「選択範囲内(F)」にチェックが付いています。次に「リスト範囲(L)」に選択された範囲が指定されているのを確認してください。
4.「検索条件範囲(C)」の右側にあるマークの部分をクリックしてください。
5.検索条件範囲を指定するダイアログボックスが表示されますので、条件が入力されているセルをマウスで指定してください。
6.「OK」ボタンを押下します。
7.条件に該当するデータだけが抽出され、該当外のものは非表示になります。

8.検索条件を外して全て表示させるにはメニューバー→「データ(D)」→「フィルタ(F)」→「すべて表示(S)」を選択してください。

以上のように指定すれば、わざわざエクセルの関数を使って抽出しなくても簡単にデータ抽出できますよ。








セルの色を判断したい



セルの色を判断してそのデータを抽出するという機能ですが、エクセルを使っている人は使いたい機能だと思うんですが、標準の機能ではできないので関数を使って実行したいと思います。

まずはセルの色を指定してデータ抽出をしてみましょう。
エクセルの機能ではオートフィルタというデータを抽出して表示させる機能があるのですが、これはセルの値によって判断するものであって、セルの色によって判断は出来ないようになっています。

では、どうやったらセルの色別に表示が出来るのでしょうか?まずはセルの色を取得する関数を使って、セルの色別に値を設定して分けます。その列を使ってオートフィルタ機能を使うとセルの色別に表示させることが出来るという事になります。

【セルの色(ColorIndex)を取得する関数】
Function iro(objCell As Range) As Integer

 Application.Volatile
 iro = objCell.Interior.ColorIndex

End Function

上記のコードを使用して各セルのColorIndex値を取得、表示させます。
例えば、A5のセルの色を取得し、B5に値を表示するのであれば、B5のセルに「=iro(B5)」と指定してください。そうするとB5にA5のセルのColorIndex値が表示されます。
これを取得したい行全てに設定して、この値に対してフィルタをかけると色別に表示することが出来ます。

参考にしてみてやってみてくださいね。








エクセル関数(mid編)



エクセルには文字列を操作する関数のmid関数というのがあります。
mid関数とは、文字列の指定した場所から指定した文字数分の文字を取得して表示させるという関数です

【書式】
「=mid(対象セル,文字列の抽出開始位置,抽出する文字数)」

【パラメータの説明】
セル        :抽出対象の文字列が指定されている場所(セル)を指定
文字列の抽出開始位置:「セル」で指定した文字列から抽出したい文字の先頭文字の左側からの位置を指定
抽出する文字数   :抽出したい文字の文字数を指定

【使用例】
=mid(C1,5,2)

【使用例の説明】
例えば、セルC1に「抽出対象文字」という文字が入力されているとします。その文字列の左側5文字目から2文字分抽出します。したがって、「抽出対象文字」の左側5文字目の「文」から2文字分の「文字」という文字列が抽出される事になります。

【注意点】
mid関数は、文字数単位で抽出しますので、全半角混在の文字列が存在したとしても文字数分の抽出になります。
例えば、セルC1に「AaBbCcDdEe」という文字列があったとして、「=mid(C1,5,2) 」という関数を指定した場合、「Cc」という2文字が抽出される事になります。

全角と半角を分けたい場合は、「midb関数」というのがあります。これは文字数ではなくバイト数での抽出になりますので全角=2バイト、半角=1バイトという事になりますので、先ほどの文字列でいくと「=mid(C1,6,3)」の場合は「bC」という文字が抽出される事になります。








エクセル関数(vlookup編)



エクセルには文字列を検索する関数のVLOOKUP関数というのがあります。
vlookup関数とは、指定した表の中から、指定した項目が入力されている行を見つけ出して、その列に入力されている値を検索するという関数です。

【書式】
「=vlookup(検索対象文字列,検索対象セル,抽出列,検索方法)」

【パラメータの説明】
検索対象文字列:検索文字列を入力
検索対象セル :検索するセルを入力(範囲選択可能)
抽出列    :検索後に表示させたい列を指定
検索方法   :通常検索時→「FALSE」、二分検索時→「TRUE」

【使用例】
=vlookup("検索するよ",$A$1:$D$99,4,FALSE)

【使用例の説明】
セルのA1〜D99の中に「検索するよ」という文字があるかどうか検索をして、左から4列目(D列)の値を表示します。

【注意点】
検索対象の範囲の一番左側が検索の対象列となるように指定をしてください。また、検索対象セルには、検索後に表示させる抽出列も含ませて指定をするようにしてください。
例えばですが、A列にある文字列を検索して、G列にある値を表示させる場合は、A〜G列までを指定するようにしてください。

表の並び順がそうなっていない場合は、検索列を一番左側に、抽出列を検索対象セルに指定するように並び替える必要があります。

また検索方法を「TRUE」の二分検索を指定する場合は、検索の対象表を前もってソートしておいてください。








複数抽出できるエクセルの関数は?



以下のような表が2つあるとします。
【Aファイル】
セル A B C
1行目 商品〜 分類〜 名称
2行目 11   21   ABC
3行目 12   22   DEF
4行目 13   23   GHI

【Bファイル】
セル A B C    D E
1行目 商品〜 分類〜 名称  コード 金額
2行目 1 2 あいう 11000  100
3行目 11   21   かきく 55000  200
4行目 3    4 さしす 90000 300


「Aファイル」の商品〜+分類〜と一致するデータを「Bファイル」から検索をして、その行ごとに別ファイルに抽出する関数なんていうのはあるでしょうか?
一致するのは複数行あると思うので、複数抽出する方法なんかもあれば教えていただきたいです。

というような質問があるとします。

ちょっと複雑だとは思いますが、以下の関数を参考にしてみてください。

1.別ファイルにシート名「検索条件」というシートを作成します。
2.シート「検索条件」のA2セル:「=[【Bファイル】]Sheet1!$A$2」
            B2セル:「=[【Bファイル】]Sheet1!$B$2」
            C2セル:「=[【Bファイル】]Sheet1!$C$2」
            D2セル:「=[【Bファイル】]Sheet1!$D$2」
            E2セル:「=[【Bファイル】]Sheet1!$E$2」
  と入力しておきます。これは、E2の次はF・G・H・・・・と必要な分だけ同じように関数をコピーしてください。
3.1行目に左側から「商品No」「分類No」「商品名」「コード」「金額」と名前を入れておきます。
4.抽出元のデータがあるシートに移って、「商品〜」の1行目の所に「=DGET([【Bファイル】]Sheet1!$A$1:$E$***,"商品No",検索条件!A1:C2)」と入力してください。ここでいう「***」というのは「2」で指定した最終行の番号になります。
5.次に「分類〜」の1行目:「=DGET([【Bファイル】]Sheet1!$A$1:$E$***,"分類No",検索条件!A1:C2)」
    「商品名」の1行目:「=DGET([【Bファイル】]Sheet1!$A$1:$E$***,"分類No",検索条件!A1:C2)」
    「コード」の1行目:「=VLOOKUP(C2,[【Bファイル】]Sheet1!$C$1:$E$***,2,FALSE)」
    「金額」 の1行目:「=VLOOKUP(C2,[【Bファイル】]Sheet1!$C$1:$E$***,3,FALSE)」
  と入力します。

これで大丈夫だと思うので、参考になさってみてくださいね。








エクセルの関数をご存知ですか?



パソコンを使う上で、エクセルという表計算ソフトがあります。このエクセルをただ使うだけならエクセルを起動させるだけでいいのですから簡単ですよね。
でも、エクセルというソフトの機能というのを熟知していますか?例えば関数や、オートフィルタなどの機能などを熟知しているでしょうか?これを知っているか知らないかでは作業効率にものすごく差が出てきます。

エクセルの関数というのはものすごく膨大にあって覚えきれるものではありません。しかしその膨大な量のうち、本当に必要な関数というのはほんのわずかしかないと思っています。まぁ使う内容にもよるとは思うのですが・・・
その関数の機能さえきっちり覚えておけばエクセルを使いこなせるには充分だと思います。
しかし、何を使っていいのかさえも分からない場合があると思います。色々なサイトを見ると、使用頻度別のエクセル関数一覧が掲載されているところがありますので参考にしてみてはいかがでしょうか?

また、エクセルの関数というのは知っているだけではあまり意味がありません。知っているのならば使いこなしましょう。例えばですが「if関数」なんかは構文自体ものすごく簡単なので、すぐに覚えて使うことが可能だと思います。
ただ、構文を覚えるだけではなかなか自分のものに習得する事が難しいと思いますので、何回も使っていくことで、使い方を習得するのがいいと思います。

色々なサイトを検索するとエクセル関数の使い方など使用例が掲載されているものがありますので参考にしてみるのもいいと思いますよ。

PageTop