トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

Excel

基本操作から関数

基本操作編

 複数のセルに同時に入力する

複数セル選択後、アクティブセルに対して入力し、Ctrl+Enterで確定する。

 テキスト形式で保存する際に数値を右揃えにする

数値の範囲を選択し、表示形式で ?????????? とした後に、テキスト形式で保存する。

   123   56
  5963    1
    21  333

ヘッダー・フッターに関するヘルプ

Excel2000以前の特殊記号。

Codes to format text
--------------------------------------------------------------------
&L              Left-aligns the characters that follow.
&C              Centers the characters that follow.
&R              Right-aligns the characters that follow.
&E              Turns double-underline printing on or off.
&X              Turns superscript printing on or off.
&Y              Turns subscript printing on or off.
&B              Turns bold printing on or off.
&I              Turns italic printing on or off.
&U              Turns underline printing on or off.
&S              Turns strikethrough printing on or off.
&"fontname"     Prints the characters that follow in the specified
                font. Be sure to include the quotation marks around 
                the font name.
&nn             Prints the characters that follow in the specified
                font size. Use a two-digit number to specify a size
                in points.
Codes to insert specific data
-------------------------------------------------------------------
&D           Prints the current date
&T           Prints the current time
&F           Prints the name of the document
&A           Prints the name of the workbook tab (the "sheet name")
&P           Prints the page number
&P+number    Prints the page number plus number
&P-number    Prints the page number minus number
&&           Prints a single ampersand
&N           Prints the total number of pages in the document
XL2000:挿入し、ヘッダーとフッターのテキストを書式化するには。
http://support.microsoft.com/default.aspx?scid=kb;JA;213618&Product=xlw2kINT

 パスを追加する方法

ということで、Excel2000以前にはヘッダー・フッターにパスを表示させることができないので、マクロを使う必要がある。

Sub UpdateFooter()
    ActiveSheet.PageSetup.LeftFooter = ActiveWorkbook.FullName
End Sub
XL2000: フッターにブック パスを追加する方法
http://support.microsoft.com/default.aspx?scid=kb;JA;213615&Product=xlw2kINT
XL2000: ヘッダーまたはフッターのセルを参照する方法。
http://support.microsoft.com/default.aspx?scid=kb;JA;273028&Product=xlw2kINT
XL: ヘッダー/フッターの日時書式を変更するマクロ
http://support.microsoft.com/default.aspx?scid=kb;JA;213742&Product=xlw2kINT

 ページ番号のシフト

空白が曲者です。

XL: ヘッダー/フッターの設定開始するページ番号
http://support.microsoft.com/default.aspx?scid=kb;JA;48198&Product=xlw2kINT
[XL2002]ヘッダー、フッターのページ数に加算、減算すると正しくない
http://support.microsoft.com/default.aspx?scid=kb;ja;418486&Product=excelJPN

関数編

 種類の総和を求める

※lookupさん

以前にちょ〜苦労して考えてた覚えがあるんですが、この数式の使い方はなかなかできるものではありません。

   A   B  C   D 
1 A部門 2  A部門 2
2 B部門 3  B部門 3
3 B部門 2  C部門 1
4 B部門 1		
5 C部門 6		
6 C部門 6		
7 A部門 1

D1に=SUM(IF(FREQUENCY(IF(A$1:A$7=C1,B$1:B$7),B$1:B$7),1))
Ctrl+Shift+EnterでD3までフィルする。

エクセルの学校P:20040120160201『部門ごとに値の種類の和を求めるには』

 金種表の作成

※シニアさん

お札の必要枚数などの確認に便利です。

   A		B	C	D	E	F	G	H	I
1		10000	5000	1000	500	100	50	10	1
2 15790		1	1	0	1	2	1	4	0
3 5250		0	1	0	0	2	1	0	0
4 315		0	0	0	0	3	0	1	5
5 20000		2	0	0	0	0	0	0	0
6 79829		7	1	4	1	3	0	2	9

B2に =INT(A2/$B$1) として下にフィル。
C2に =INT(($A2-SUMPRODUCT($B$1:B$1,$B2:B2))/C$1) として右下にフィル。

エクセルの学校P:20030724233943『金種表』

 DATEDIF関数について

DATEDIF関数はエクセルの関数の挿入の一覧にはでてきません。
他のアプリケーションとの互換性を保つための関数だとか。
他のアプリケーションとはLotusなわけですが。

以下Q&A (日数/時間計算編)より引用

 DATEDIF
  ̄ ̄ ̄ ̄
   指定された期間内の日数、月数、または年数を返します。
       DATEDIF(開始日 , 終了日 , 単位)
   開始日・・・・・期間の開始日を指定します。
   終了日・・・・・期間の終了日を指定します。
   単位・・・・・・・ 戻り値の単位と種類を、単位を表す文字列で指定します。
           単位戻り値の単位と種類
            "Y"期間内の満年数
            "M"期間内の満月数
            "D"期間内の満日数
            "MD"1 か月未満の日数
            "YM"1年未満の月数
            "YD"1年未満の日数
     開始日と終了日には、"93/1/30" や "1-30-93" のような日付を表す文字列、ある
    いは日付に対応するシリアル値を指定することができます。
     使用例
           DATEDIF("1/1/92","1/1/94","Y")=2
           DATEDIF("6/1/93","6/15/94","YD")=14
           DATEDIF("3/1/93","8/4/98","MD")=3
     関連項目
           DATE 指定された日付に対応するシリアル値を返します。
           DATEVALUE 日付を表す文字列をシリアル値に変換します。
           WEEKDAY シリアル値を曜日に変換します。
   なお、DATEDIF 関数は、データ互換のために用意された関数であるため、関数ウ
   ィザードを使用して入力することができません。そのため、直接入力していただく
   ようお願いいたします。
[XL]DATEDIF関数が[関数ウィザ-ド]の関数名一覧に含まれていない
http://support.microsoft.com/default.aspx?scid=kb;ja;402431&Product=excelJPN
[XL95]DATEDIF関数が[関数ウィザ-ド]の関数名一覧に含まれない
http://support.microsoft.com/default.aspx?scid=kb;ja;401018&Product=excelJPN
[XL2000]DATEDIF関数が関数ウィザ-ドの関数名一覧に含まれない
http://support.microsoft.com/default.aspx?scid=kb;ja;414668&Product=excelJPN
[XL2002]ヘルプおよび関数ウィザードに表示されない関数について
http://support.microsoft.com/default.aspx?scid=kb;ja;418360&Product=excelJPN

Lotusとの互換性について

[XL] Q&A (Lotus 1-2-3 からの移行ユーザー編)
http://support.microsoft.com/default.aspx?scid=kb;ja;401697&Product=excelJPN

VBAで使用したい場合は↓

[XL95]VBAでワークシート関数 DATEDIF 関数を使用する方法
http://support.microsoft.com/default.aspx?scid=kb;ja;407898&Product=excelJPN

DATEDIF関数の説明について

Q&A (日数/時間計算編)
http://support.microsoft.com/default.aspx?scid=kb;ja;401700&Product=excelJPN
[XL95] Q&A (日数/時間計算編)
http://support.microsoft.com/default.aspx?scid=kb;ja;402779&Product=excelJPN
[XL2002] 日数および時間計算に関するワークシート関数について
http://support.microsoft.com/default.aspx?scid=kb;ja;416574&Product=excelJPN

 文字列を数値に変換する

隠し文字とスペースを削除する... 意外と忘れそうなので。

=VALUE(TRIM(CLEAN(A1)))
[XL2000]文字数値を数値に変換する方法
http://support.microsoft.com/default.aspx?scid=kb;ja;181298&Product=excelJPN

 行・列方向のデータが入った最後のセルを抽出する

※kkkさん

A1からG1の範囲に数値があり、1行の中で一番最後のセルに入ったデータをH1に抽出する方法

      A      B      C      D     F      G      H
1    10     55     20           33            33
2

H1の関数式は

=INDEX(A1:G1,MATCH(10^17,A1:G1))
 

または負の数値がないなら↓も可

=INDEX(A1:G1,MATCH(,A1:G1,-1))
10^17とは
Excel上では数値の16桁以降は省略されて表示されてしまい、実質使用できる有効桁数は15桁までということになります。ここでの10^17は18桁の数値ということで、Excelでは扱うことの無い数値であるといえます。
=INDEX(配列, 行番号, 列番号)
=MATCH(検査値, 検査範囲, 照合の型)

MATCH関数はソートされていない検索範囲に対し、検索値が存在しなかった場合はデータが格納された最後のセルの位置を返します。

エクセルの学校P:20030806101456『一覧の中から最終データを取り出す』

 文字列中の数値の開始位置

※kkkさん

セルA1に"東京都港区北青山1-23-45-607"とあったとき

バイトで返す(17バイト目)

=MIN(FINDB({1,2,3,4,5,6,7,8,9,0},A1&1234567890))

文字数で返す(9文字目)

=MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&1234567890))

そこから後ろを抜き出す(1-23-45-607)

=MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&1234567890)),100)

エクセルの学校P:20030501172040『セル内の数値の開始位置』

 基準値から±100以上の誤差に○

A1に基準値、B列に検査対象になる数値、C列に下の関数

=IF(ABS($B1-$A$1)>=100,"○",$B1)

 祝日を求める

※シニアさん

第3月曜日の表示例(7月海の日、9月敬老の日) 
=DATE($R$2,T18,IF(WEEKDAY(DATE($R$2,T18,1),1)<=2,3,4)*7-4-WEEKDAY(DATE($R$2,T18,1)))
 
=DATE($R$2,T18,IF(WEEKDAY(DATE($R$2,T18,1),1)<=2,2,3)*7-WEEKDAY(DATE($R$2,T18,1))+3)
 
第2月曜日(1月成人の日、10月体育の日)
=DATE($R$2,T18,IF(WEEKDAY(DATE($R$2,T18,1),1)<=2,2,3)*7-4-WEEKDAY(DATE($R$2,T18,1)))
 
=DATE($R$2,T18,IF(WEEKDAY(DATE($R$2,T18,1),1)<=2,1,2)*7-WEEKDAY(DATE($R$2,T18,1))+3)

エクセルの学校P:20031031204404『休日の表示方法』

 数式で参照元の表示形式を持ってくるには

SUM関数、AVERAGE関数は参照元の表示形式を持ってくるという不具合を逆手に取る。
表示形式で使用できるフォントの色とかは持ってこれる。

A1に 1 で、表示形式で表示形式が例えば

[青][>0]#;[赤][<0]#;[緑]0;@

C1に =SUM(A1) とすると青の 1 が表示される。

条件付書式やセルの色など持ってきたいときは、図のリンク貼り付けを使用するしかないと思う。

図のリンク貼り付けは、対象のセルをコピーしておき、Shiftキーを押しながら[編集]-[図のリンク貼り付け]

[XL2002]関数で参照するセルの表示形式により数式が入力されているセルの表示形式が設定される
http://support.microsoft.com/default.aspx?scid=kb;ja;405393&Product=excelJPN

不具合

 ドットがカンマになった

表示形式に 000 等を使用すると、ロケールが勝手に変更される恐ろしい不具合。
ロケールが変わると、その国の数値の扱いに設定されるため、数値のドットがカンマに変わったりする。

[XL2002]特定のユーザー定義表示形式を設定するとロケールが変更される
http://support.microsoft.com/default.aspx?scid=kb;ja;418194&Product=excelJPN

 MOD()で#NUM!が返される

9〜10桁以上の数値をMOD()に渡すとエラーになる。
よってMOD()で処理するのは8桁までの数値ということに。

INT()を使って対応できる。

=数値 - (INT(数値 / 除数) * 除数)
[XL] MOD() 関数で #NUM! エラー値が返される
http://support.microsoft.com/default.aspx?scid=kb;ja;119083&Product=excelJPN