エクセルの勉強部屋のホ−ムへ

戻る
指定月の最初の火曜日の日付を返す

参考になる質問が「質問と回答」
http://kiyopon.sakura.ne.jp/situmon/index.htm
の「計算式・関数」「2005/12/28」
指定した月の指定した「曜日」に対応する「日」を表示させる」にあります。

御質問の場合は、指定月の最初の火曜日ですので、次のようになります。
A1セルに
2007年2月
と入力します。
B1セルに火曜日の日付を返すための数値
2
と入力します。

月曜日を返す場合は、B1セルに1
火曜日 2
水曜日 3
木曜日 4
金曜日 5
土曜日 6
日曜日 7
と入力します。

B2セルに、
=A1+$B$1-WEEKDAY(A1,2)+IF(WEEKDAY(A1,2)>$B$1,7,0)
と入力します。
B2セルの書式設定で「表示形式」の「分類」を「日付」とし、「種類」欄で「yyyy/m/d」等を選択します。



戻る
0から始まる数字0571930を、全角 0571930と表示する
数値そのものではなく、セルの参照値を先頭ゼロで全角で表示するのですね。
A1セルに参照値が文字列で
0571930
と入力されているとします。
セルB1には、
=TEXT(A1,"[dbnum3]"&REPT(0,LEN(A1)))
と入力します。
0571930
が返ります。
数式の意味
A1セルの値を全角表示の数値で、A1セルの文字列数の桁数だけ0とした文字列として表示します。

それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」の
TEXT
http://kiyopon.sakura.ne.jp/kansuu/val.html#text
REPT
http://kiyopon.sakura.ne.jp/kansuu/val.html#rept
を参照してください。



戻る
セル範囲から今日の日付以降で最も近い日付を求める方法
添付ファイルを参照してください。
日付と曜日を同じセルに表示しています。
セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスで、「表示形式」の「分類」で「ユーザー定義」を選択し「種類」欄に 「yyyy/m/daaa」と入力し、「OK」ボタンを押します。

最も近い日付とは、本日の日付以上で一番小さい日付です。
「配列数式」を使います。
セルC1には、
=MIN(IF($B$7:$C$21>=$B$1,$B$7:$C$21))
と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。
数式の意味
もし、セル範囲$B$7:$C$21の値が、セル$B$1以上の場合、セル範囲$B$7:$C$21の一番小さい値を返します。

対象の日付のセルに色塗りをする場合は、セル範囲B7:C21を選択し「条件付き書式」を選択し、「条件付き書式の設定」ダイアログボック スで、「条件1」で、「数式が」を選択し、
(エクセル2007以降の場合、[ホーム]リボンの、「スタイル」の中から[条件付き書式]を選択し、「新しいルール]を選択します。
「新しい書式ルール」ダイアログボックスで、「ルールの種類を選択してください」の中から、「数式を使用して、書式設定するセルを決定」を選択し、[ルールの内容を編集しいてください]で、「次の数式を満たす場合に値を書式設定」の中に、数式を)
「=B7=MIN(IF($B$7:$C$21>=$B$1,$B$7:$C$21))」と入力し、 {Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」として確定します。
「書式」ボタンを押し「パターン」タグを開き「色」を「朱」にして「OK」ボタンを押し、「条件付き書式の設定」ダイアログボックスで、「OK」ボタンを 押します。



戻る
「7/8/2006」 や「12/1/2006」を「YYYY/MM/DD」として表 示させる方法
A1に入力した日付のような文字列
3/20/2006

日付文字列
2006/3/20
とするには、
B1セルに、
=DATE(RIGHT(A1,4),LEFT(A1,FIND("/",A1)-1),MID(A1,FIND("/",A1)+1,FIND("/",A1,4)-FIND("/",A1)-1))
と入力します。

「エクセルで使えるソフト」 http://kiyopon.sakura.ne.jp/soft/index.htm に「日付に変換」アドインソフトを作成しました。
注意このソフトを使用する場合は、「アドインソフト使用上の注意」
http://kiyopon.sakura.ne.jp/soft/addin.html
を必ずお読みください。
対象の日付のようなセル範囲を選択し、マウスの右ボタンのショートカットメニューから「日付に変換」を選択すれば、対象の日付のような文字列を日付に変換 します。



戻る
小数点位置を揃え、かつ、整数値には小数点 を表示しないようにしたい
小数点位置を1桁に揃えるには、セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスで、「表示 形式」の「分類」で「ユーザー定義」を選択し「種類」欄に「#.?」
で小数点以下1桁までを表示しますが、
整数値の5は、
5.
と小数点が不自然に残ります。

入力セルに小数点以下と小数点なしを混在することはできないようです。
別のセルに表示することにします。

 
A B
1   5
2 5.1
と入力した場合
B1セルに
=IF(INT(A1)=A1,TEXT(A1,"#  "),TEXT(A1,"#.?"))
と入力します。
セルを選択し、「書式」「セル」で、「文字の配置」タグを開き「横位置」「右詰め」にします。
小数点以下1桁まで品入力しない場合は、セルの書式設定は、「標準」でよいです。
小数点以下2桁以上まで入力する場合は、
セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスで、「表示形式」の「分類」で「ユーザー定義」を選択し、「種類」欄に 「#.?」と入力し「OK」ボタンを押します。
下のセルに数式をコピーすれば
 
A B
1   5  5
2 5.1  5.1
となります。
B列には、数値ではなく、文字列が表示されますが、計算すれば正しく数値として認識されます。


戻る
2.50は2、2.51は3と表示するようにしたい
数値を入力したセルにそのまま表示するのは無理ですから、別のセルに数式で表示することになります。
A1セルに
2.50
と入力してあるとします。
B1セルに
=round(A1-0.01,0)
と入力します。
数式の意味
A1セルの値-0.01(この場合2.50-0.01=2.49)をゼロの桁に四捨五入して丸めます。
2
が返ります。
2.51
と入力した場合は、
2.51-0.01=2.5
これをゼロの桁に四捨五入すれば、
3
が返ります。


戻る
検索値に一番近い値をデータリストから抜き出す
参考になる質問が「計算式・関数」「2005/6/19」
セルに入力した数値にもっとも近い値をリストから検索し、その行,列の項目名を返す」にあります。

御質問の場合は次のようになります。
「配列数式」を使います。
添付ファイルを参照してください。

 
A B C D E
1 温度A 温度B  検索値 温度A 温度B
2 8.89 35 9 9.04 38
3 8.9 36
4 8.95 37
5 9.04 38
6 9.12 39
セルA2:A6にデータを入力します。
セルC2に検索値としての数値9を入力します。
セルD2には、C2の検索値に最も近い値をセル範囲A2:A8から求めて返す「配列数式」
=MIN(IF(MIN(ABS($A$2:$A$6-$C$2))=ABS($A$2:$A$6-$C$2),$A$2:$A$6))
と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

数式の意味
セル範囲$A$2:$A$8の値からセル$C$2の値を引いた値を絶対値とし、その最小値を返します。
もしその値が、セル範囲$A$2:$A$8の値からセル$C$2の値を引いた値を絶対値と同じ場合は、該当のセル範囲$A$2:$A$8の値の最小値を返 します。

セルE2には、C2の検索値に最も近い値をセル範囲A2:A8から求めて該当するB列の値を返す「配列数式」
=MIN(IF(MIN(ABS($A$2:$A$6-$C$2))=ABS($A$2:$A$6-$C$2),$B$2:$B$6))
と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

数式の意味
セル範囲$A$2:$A$8の値からセル$C$2の値を引いた値を絶対値とし、その最小値を返します。
もしその値が、セル範囲$A$2:$A$8の値からセル$C$2の値を引いた値を絶対値と同じ場合は、該当のセル範囲$B$2:$B$8の値の最小値を返 します。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
「エクセルで使えるソフト」の「指定値に一番近い値」ユーザー定義関数
http://kiyopon.sakura.ne.jp/soft/minx.htm
を使えば、数値のデータ範囲から、指定値に最も近い値(絶対値)を返します。
もちろん指定値とデータが一致する場合はその値を返します。
通常の組み込み関数と同じようにワークシート上で使用できる関数です。




戻る
地名と番地をそれぞれ別のセルに分ける方法
都道府県を別にするには、同じ質問が「質問と回答」
の「計算式・関数」「2002/9/12」「住所から都道府県の表示を除く」にあります。

また、次に参考になる質問が「質問と回答」
の「計算式・関数」「2002/4/6」
セルに入力してある名前を「苗字」と「名前」に分ける方法」にあります。

また、別の方法として、「データ」「区切り位置」を使います。
地名と番地の文字列に何かの区切り文字(例えば半角スペース)をいれます。
次に、対象のセル範囲(例えばA1:A1000)(1列のデータでデータ列の右に何もデータが入力されていないような状態で)を選択します。
「データ」「区切り位置」を選択し、「区切り位置指定ウィザード-1/3」で、「元のデータの形式」グループで「カンマやタブなどの区切り文字によって フィールドごとに区切られたデータ」にチェックを入れ、「次へ」ボタンを押します。
「区切り位置指定ウィザード-2/3」で、「区切り文字」グループの「スペース」にチェックを入れ、「次へ」ボタンを押します。
「区切り位置指定ウィザード-3/3」で、区切った後のデータ形式を選択し「完了」ボタンを押します。




戻る
A2のセルに、B2 の入力確定(文字、数値を問わず)したら、A1の次の整数を表示したい。
B2セルにデータが入力されたかを返す関数ISBLANKを使います。
A2セルには、
=IF(NOT(ISBLANK(B2)),A1+1,"")
と入力します。

それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「論理関数」
IF
http://kiyopon.sakura.ne.jp/kansuu/if.html#if
NOT
http://kiyopon.sakura.ne.jp/kansuu/if.html#not
「情報関数」
ISBLANK
http://kiyopon.sakura.ne.jp/kansuu/cell.html#isblank

を参照してください。



戻る
二つの数値の間にあるセル数を返す
 
セル範囲A1:A8の値が

7未満
=COUNTIF(A1:A8,"<7")

7以上14未満 
=COUNTIF(A1:A8,">=7")-COUNTIF(A1:A8,">14")
数式の意味
セル範囲A1:A8の値が7以上のセル数(この場合6)を返し、その値から
セル範囲A1:A8の値が14超過のセル数(この場合3)を減算し(この場合6-3=3)ます。

15以上
=COUNTIF(A1:A8,">14")

関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
COUNTIF
http://kiyopon.sakura.ne.jp/kansuu/abs.html#countif
を参照してください。



戻る
誕生日が指定した日付の間なら隣のセルに○を表示する
A1セルにAさんの誕生日が
1990/11/10
A2セルにAさんの誕生日が
1992/10/6
A3セルにAさんの誕生日が
1995/1/20
と入力されているとします。

B1セルには、1987/1/1から1995/1/1の場合に"○"と表示する数式
=IF(AND(A1>=DATE(1987,1,1),A1<=DATE(1995,1,1)),"○","")
と入力します。
数式の意味
セルA1の値が、日付1987/1/1以上で、かつ、日付1995/1/1以下の場合"○"を表示、それ以外は何も表示しません。
このセルをコピーして下のセル範囲に貼り付けます。

それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「日付+時刻」
DATE
http://kiyopon.sakura.ne.jp/kansuu/date.html#date
「論理関数」
IF
http://kiyopon.sakura.ne.jp/kansuu/if.html#if
AND
http://kiyopon.sakura.ne.jp/kansuu/if.html#and
を参照してください。



戻る
期限1ヶ月前から注意信号を出せるようにしたい
セルF6には、セルD6の日付の1ヵ月前になると、何"日前です"と表示する数式
=IF(AND(D6>=TODAY(),DATE(YEAR(D6),MONTH(D6)-1,DAY(D6))<=TODAY()),D6 -TODAY()&"日前です","")
と入力します。
数式の意味
もし、セルD6の日付が、今日の日付以上で、かつ
セルD6の日付の1ヵ月前の日付を求めるために
DATE(YEAR(D6),MONTH(D6)-1,DAY(D6))
DATE関数で、セルD6の年(この場合平成19年)、セルD6の月-1(この場合3-1=2月)、
セルD6の日(この場合31日)から日付(平成19年2月31日)を返します。
今日の日付は、TODAY関数で返します。
IF関数で二つの日付を比較し、今日の日付よりも小さくなれば、今日の日付との差を計算し、何"日前です"と
表示します。
それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「日付+時刻」
DATE
http://kiyopon.sakura.ne.jp/kansuu/date.html#date
YEAR
http://kiyopon.sakura.ne.jp/kansuu/date.html#year
MONTH
http://kiyopon.sakura.ne.jp/kansuu/date.html#month
DAY
http://kiyopon.sakura.ne.jp/kansuu/date.html#day
TODAY
http://kiyopon.sakura.ne.jp/kansuu/date.html#today
「論理関数」
IF
http://kiyopon.sakura.ne.jp/kansuu/if.html#if
を参照してください。


戻る
「0」以外の数値の個数を数えたい
COUNTIFですね。
セル範囲A1:A1000のセルの数値が0以外のセル数を数えるには
0より大きい値のセル数+0より小さい値のセル数ですから
=COUNTIF(A1:A1000,">0")+COUNTIF(A1:A1000,"<0")
と入力します。
あるいは、
=COUNT(A1:A1000)-COUNTIF(A1:A1000,"=0")
いかがでしょうか。


戻る
データ表から指定月の合計金額を算出したい
「配列数式」を使います。
添付ファイルを参照してください。
 
A B C D
1 [データ表] 
2 購入品 金額 購入
3 1 *** 1,000 2002/9/26
4 1 *** 2,000 2002/9/27
5 1 *** 3,000 2002/9/28
6 1 *** 4,000 2002/9/29
7 2 *** 5,000 2002/9/30
8 2 *** 6,000 2002/10/1
9 2 *** 7,000 2002/10/2
10 2 *** 8,000 2002/10/3
11 2 *** 9,000 2002/10/4
12 2 *** 10,000 2002/10/5
13
14  [集計表]
15 集計
16 9月 10月 11月
17 15,000 40,000 0
セルA16の集計月を計算可能な数値のみとします。
9
と入力します。
セルに
9月
と表示するために、セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスで、「表示形式」の「分類」で「ユーザー定義」を選択 し「種類」欄に「#月」と入力し「OK」ボタンを押します。

セルB16の値をオートフィル(セルの右下をマウスで+表示になったところで右にドラッグ)で右のセルC16まで、連続入力します。

セルB17には、
=SUM(IF(MONTH($D$3:$D$12)=A16,$C$3:$C$12))
と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」
として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

数式の意味
セル範囲$D$3:$D$12の月の値が、セルA16と等しい場合、該当するセル範囲$C$3:$C$12
の値を合計して返します。
それぞれの関数の意味使い方は
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「日付+時刻」
MONTH
http://kiyopon.sakura.ne.jp/kansuu/date.html#month
「数学+三角」
SUM
http://kiyopon.sakura.ne.jp/kansuu/abs.html#sum
「論理関数」
IF
http://kiyopon.sakura.ne.jp/kansuu/if.html#if
を参照してください。



戻る
データ未入力のセルに、上の行のデータを表示させる
OFFSET関数と、INDIRECT関数と、ROW関数、COLUMN関数を使います。
関係ないセル(例えばセルA2)に
=OFFSET(INDIRECT("R"&ROW()&"C"&COLUMN(),FALSE),-1,0,1,1)
と入力します。
数式の意味
文字列"R"と数式入力セルの行番号(この場合2)と、文字列"C"と数式入力セルの列番号(この場合1)を文字列結合関数で結合し、"R1C1"形式の セル参照式とします。(これで数式を入力したセルのセル番地この場合"A2"が返ります)
そのセルに対して、上に1セル、右に0セル移動した、1つのセル(この場合A1セル)の値を返します。

このセルをコピーします。

次に空白セルを選択します。
その方法
空白セルを含むセル範囲A1:A21を選択し、「編集」「ジャンプ」を選択し、「セル選択」ボタンを押します。
「空白セル」のラジオボタンを押して、「OK」ボタンを押します。
これで空白セルのみが選択できました。
「編集」「貼り付け」で、空白セルに先ほどコピーしておいた数式を貼り付けます。

数式を値に置き換えるには、そのままのセル選択状態で、「編集」「コピー」を選択し、「編集」「形式を選択して貼り付け」で、「値」に チェックを入れ、「OK」ボタンを押します。

それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「検索+行列」
OFFSET
http://kiyopon.sakura.ne.jp/kansuu/address.html#offset
INDIRECT
http://kiyopon.sakura.ne.jp/kansuu/address.html#indirect
ROW
http://kiyopon.sakura.ne.jp/kansuu/address.html#row
COLUMN
http://kiyopon.sakura.ne.jp/kansuu/address.html#column
を参照してください。



戻る
PHONETICの同じ設定でなぜ 「カタカナ」と「ひらがな」のものが出来てしまうのでしょうか
エクセルの仕様です。
いろいろなところから寄せ集めたデータでは、正しくふりがな表示ができない場合があります。

PHONETIC関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」PHONETIC
http://kiyopon.sakura.ne.jp/kansuu/val.html#phonetic
を参照してください。

エクセルで使えるソフト」の「ふりがな」を使えば、文字列の読 みを「ひらが
な」あるいは「カタカナ」でかえすユーザー定義関数があります。
「ふりがな」ユーザー定義関数の説明はこちら↓
http://kiyopon.sakura.ne.jp/soft/kana.htm
注意このソフトを使用する場合は、「アドインソフト使用上の注意」
http://kiyopon.sakura.ne.jp/soft/addin.html
を必ずお読みください。



戻る
走行距離と給油量から燃費を求める
添付ファイルを参照してください。
「距離計読(km)」の記入方法で違いがあります。
1.「距離計読(km)」が給油の日以外記入されない場合
2.毎日「距離計読(km)」が記入(給油していない日も「距離計読(km)」を記入)される場合

1.「距離計読(km)」がが「給油」の日以外記入されない場合
当日の「距離計読(km)」がから前日までの「距離計読(km)」がが記入してあるセルの値の最大値を引き算する

セルF6には、
=IF(F4="","",(F4-MAX($B$4:E4))/F5)
と入力します。
 

2.毎日「距離計読(km)」がが記入(給油していない日も「距離計読(km)」がを記入)される場合
当日の「距離計読(km)」がから前日までの「給油」のデータが入力されているセルの列範囲の最大値の走行距離を引き算する「配列数式」を使います。

セルF7に
=IF(F4="","",(F4-MAX(IF($B$5:E5<>"",$B$4:E4)))/F5)
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。



戻る
賞与時の源泉税率求める方法
添付ファイルを参照してください。
「配列数式」とIF関数、COLUMN関数、INDIRECT関数、LOOKUP関数を使います。
まず、表の「扶養親族等の数」の入力してあるセル範囲B12:P12の文字列"0人","1人"・・・を、数値のみ(0,1,2・・・)にします。
セル範囲B12:P12を選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で「ユーザー定義」を選択 し、「[Dbnum3]#,"人";;[Dbnum3]0"人"」と入力し、「OK」ボタンを押します。
これで、セル範囲B12:P12の値が数値になり、1"人"と表示されるようになり、数値として比較できるようになりました。
(セルを選択すれば、数式バーに数値しか入力されていないことが分かります)

セルD3には、
=LOOKUP(B3,INDIRECT("R16C"&MIN(IF(C3=B12:Q12,COLUMN(B12:Q12)))&":R33C"&MIN(IF(C3=B12:Q12,COLUMN(B12:Q12))),FALSE),A16:A33)
と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

数式の意味
MIN(IF(C3=B12:Q12,COLUMN(B12:Q12)))
扶養数に対して、どの列のデータを検索値にするのかを求めるため、IF関数でC3セルの値と比較し、列番号を求めます。
この場合セルC3の値が2で、セル範囲B12:P12と同じ列は、F列(列番号"6")が返ります。

次にINDIRECT関数で、セル参照式とします。
文字列"R16:C"と、先ほど求めた列番号"6"を、文字列結合関数(&)で結合し、さらに、文字列":R33C"と、先ほど求めた列番号 "6"を文字列結合関数(&)で結合し、"R1C1"形式のセル参照式とします。
この場合、セル範囲"R16C6:R33C6"へのセル参照式となります。

これまでの計算で求めた数式を書き直せば
=LOOKUP(B3,R16C6:R33C6,A16:A33)
となります。
LOOKUP関数で、セルB3の値を検索値として、検索範囲R16C6:R33C6から、対応範囲A16:A33のデータを返します。
この場合、セルB3が235300ですから、19行の154000から378000に該当し、そのA列の値6が返ります。

それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「検索+行列」INDIRECT
http://kiyopon.sakura.ne.jp/kansuu/address.html#indirect
LOOKUP
http://kiyopon.sakura.ne.jp/kansuu/address.html#lookup
COLUMN
http://kiyopon.sakura.ne.jp/kansuu/address.html#column
「論理関数」IF
http://kiyopon.sakura.ne.jp/kansuu/if.html#if
「統計関数」MIN
http://kiyopon.sakura.ne.jp/kansuu/avedev.html#MIN
を参照してください。




戻る
1,3,6,9,10,15の中から 3個の重複しない乱数を発生させるには
6種類の乱数をセルB1:B6に発生させます。
B1:B6には
=RAND()
と入力します。
RAND関数は、複数セルに入力した場合には、絶対同じ数値を返しません。

セルA1には、
=CHOOSE(RANK(B1,$B$1:$B$6),1,3,6,9,10,15)
と入力します。
数式の意味
セルB1の値が、セル範囲$B$1:$B$6の何番目の順位かを返し、その順位に基づいて、1,3,6,9,10,5の左から値を取りだして返します。

3個の重複しない値ですから、下のセル3つに貼り付ければ良いことになります。
このセルをコピーして下のセル範囲A2:A3まで貼り付けます。

[F9]キーを押すたびに、再計算されて乱数に応じた値が返ります。

それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「数学+三角」RAND
http://kiyopon.sakura.ne.jp/kansuu/abs.html#rand
「検索+行列」CHOOSE
http://kiyopon.sakura.ne.jp/kansuu/address.html#chose
「統計関数」RANK
http://kiyopon.sakura.ne.jp/kansuu/avedev.html#RANK
を参照してください。



戻る
個別のセルの値を千円単位で切り上げた値として合計を 返す
「配列数式」を使います。
 
A
1 17,500
2 4,100
3 22,600
4
5
6 46,000
セルA6には、
=SUM(ROUNDUP(A1:A3,-3))
と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。


戻る
七捨八入の方法(7以下→0、8以上→10)
数式は次のようになります。
=IF(AND(VALUE(RIGHT(A1,1))>=8,VALUE(RIGHT(A1,1))<=9),CEILING(A1,10),FLOOR(A1,10))

数式の意味
もし、A1セルの右から1文字目の文字列を数値として値が8以上で、かつ、A1セルの右から1文字目の文字列を数値として値が9以下の場合は、10を単位 として切り上げて丸め、それ以外は10を単位として切り捨てます。
それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「丸め」
CEILINGとFLOOR
http://kiyopon.sakura.ne.jp/kansuu/round.htm#floop
「文字列関数」
VALUE
http://kiyopon.sakura.ne.jp/kansuu/val.html#value
RIGHT
http://kiyopon.sakura.ne.jp/kansuu/val.html#right
AND
http://kiyopon.sakura.ne.jp/kansuu/if.html#and
IF
http://kiyopon.sakura.ne.jp/kansuu/if.html#if
を参照してください。



戻る
セル内の文字数を25文字以下にしたい
すでに入力してあるセルの文字数を25文字以下にする場合、
セルA1に文字が入力してあるとします。
セルB1には、
=LEFT(A1,25)
と入力します。

セルA1のセルの文字をセルB1の値に置き換える場合
セルB1を選択し、「編集」「コピー」し、セルA1を選択し、「編集」「形式を選択して貼り付け」で、「値」のチェックして「OK」ボタンを押します。
LEFT関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」LEFT
http://kiyopon.sakura.ne.jp/kansuu/val.html#left
を参照してください。

また、入力文字数を制限するには、参考になる質問が
「入力・操作」「2005/5/17」
全角で 12桁、半角で24桁以上入力出来ないようにしたい」にあります。



戻る
123456→1234と、下2桁だけを一括で削除し たい
別のセルに下二桁だけを削除した数値を返す方法を紹介します。
セルA1に、数値が
123456
と、入力してあるとします。
セルB1を選択し、数式
=INT(A1/100)
と入力します。
B1セルには、
1234
が返ります。
A1セルの値を、セルB1の値に置き換えるには、セルB1を選択し、「編集」「コピー」します。
セルA1を選択し、「編集」「形式を選択して貼り付け」で、「値」にチェツクを入れ「OK」ボタンを押します。
B1セルの数式は削除します。

INT関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「数学+三角」INT
http://kiyopon.sakura.ne.jp/kansuu/abs.html#INT
を参照してください。

別の方法として、下2桁の文字だけを切り取る数式
セルA1に、数値が
123456
と、入力してあるとします。
B1セルに
=LEFT(A1,LEN(A1)-2)
と入力します。
B1セルには、
1234
が返ります。
A1セルの値を、セルB1の値に置き換えるには、セルB1を選択し、「編集」「コピー」します。
セルA1を選択し、「編集」「形式を選択して貼り付け」で、「値」にチェツクを入れ「OK」ボタンを押します。
B1セルの数式は削除します。

それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」LEFT
http://kiyopon.sakura.ne.jp/kansuu/val.html#left
LEN
http://kiyopon.sakura.ne.jp/kansuu/val.html#len
を参照してください。



戻る
3行目に行を挿入した時も数式の参照セル=A3を 固定する方法
INDIRECT関数を使います。
セルには、
=INDIRECT("$A$3")
と入力します。
INDIRECT関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「検索+行列」のINDIRECT
http://kiyopon.sakura.ne.jp/kansuu/address.html#indirect
を参照してください。


戻る
入力データをプラス分、マイナス分それぞれに合計し 表示する
SUMIF関数を使います。
セル範囲A1:A10に数値が入力してあるとします。
A1:A10のプラスの値のみを合計するセルには、
=SUMIF(A1:A10,">0",A1:A10)
と入力します。

A1:A10のマイナスの値のみを合計するセルには、
=SUMIF(A1:A10,"<0",A1:A10)
と入力します。

SUMIF関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「数学+三角」SUMIF
http://kiyopon.sakura.ne.jp/kansuu/abs.html#sumif
を参照してください。



戻る
総個数100個の商 品を30入りのケース換算し端数も出し3ケースと10個を別のセルに返す
答えを整数値3と端数10に分けるのですね。
整数値を求めるには
=INT(100/30)
と入力します。
3
が返ります。

端数を求めるには、
=MOD(100,30)
と入力します。
10
が返ります。
それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「数学+三角」のINT
http://kiyopon.sakura.ne.jp/kansuu/abs.html#INT
MOD
http://kiyopon.sakura.ne.jp/kansuu/abs.html#mod



戻る
ハイフンなし7桁の郵便番号の前3桁と 後ろ4桁を別のセルに表示させたい
セルA1に7桁の数値が
1234567
と、入力されているとします。
B1セルに、左から3桁の数値を返す式
=LEFT(A1,3)
と入力します。
123
が返ります。

C1セルに、右から4桁の数値を返す式
=RIGHT(A1,4)
と入力します。
4567
が返ります。

それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」LEFT
http://kiyopon.sakura.ne.jp/kansuu/val.html#left
RIGHT
http://kiyopon.sakura.ne.jp/kansuu/val.html#right
を参照してください。



戻る
EDATE関数で『#NAME?』エラーが表示される
 
EDATE関数を利用するには、この関数を使うには、セットアッププログラムを実行
して分析ツールを組み込み、[ツール]メニューの[アドイン]コマンドを使ってそ
の分析ツールを登録する必要があります。
EDATE関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「日付+時刻」EDATE
http://kiyopon.sakura.ne.jp/kansuu/date.html#edate
を参照してください。


戻る
123456→56と、下2桁だけを別のセルに取り 出したい
RIGHT関数を使います。
A1セルに
123456
と入力してある場合
B1セルには、A1セルの右から2文字を取り出します。
=RIGHT(A1,2)
と入力します。
文字列として
"56"
が返ります。
取りだした2文字を数値として認識させるには、
=VALUE(RIGHT(A1,2))
と入力します。

それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」のRIGHT
http://kiyopon.sakura.ne.jp/kansuu/val.html#right
VALUE
http://kiyopon.sakura.ne.jp/kansuu/val.html#value
を参照してください。



戻る
指数入力した9.45E+12の指数の添え字12を返す
数値の乗数を求めるには、数値の文字数をLEN関数で求め、その文字数から小数点の(.)文字数である1を引くことにしま す。
また、指数がマイナスの場合は、指数の小数点(.)を削除した値の文字長さと、数値から指数を計算します。
具体的には、次のようになります。
A1セルに
数値が
9.45E+12
と入力してあるとします。
B1セルには、
=IF(A1>=1,LEN(INT(A1))-1,-(LEN(SUBSTITUTE(A1,".",""))-LEN(A1*10^(LEN(SUBSTITUTE(A1,".",""))-1))))
と入力します。
指数部分の
12
がかえります。

指数部分の10の12乗を数値で返すには、
=10^(IF(A1>=1,LEN(INT(A1))-1,-(LEN(SUBSTITUTE(A1,".",""))-LEN(A1*10^(LEN(SUBSTITUTE(A1,".",""))-1)))))
と入力します。
1000000000000
が返ります。

それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「数学+三角」
INT
http://kiyopon.sakura.ne.jp/kansuu/abs.html#INT

「文字列関数」
LEN
http://kiyopon.sakura.ne.jp/kansuu/val.html#len
SUBSTITUTE
http://kiyopon.sakura.ne.jp/kansuu/val.html#substitute
を参照してください。

「エクセルで使えるソフト」
http://kiyopon.sakura.ne.jp/soft/index.htm
に、私の作成したユーザー定義関数「指数表示」を作成しました。
「指数表示」ユーザー定義関数は、3つの関数「指数表示」「指数」「仮数」を利用できます。

「指数表示」の指数の値を指定できます。
仮数の整数部を0とした値(例えば、0.945E+12)で表示させることも出来ます。
指数表示9.45E+11の「指数」(12)と「仮数」(9.45)を返します。

例えば、数値が、12桁の数値 945000000000 とすれば、
=指数表示(数値)=9.45E+11
=指数表示(数値,0)=0.945E+12
=指数表示(数値,6)=945000E+6
=指数(数値)=11
=仮数(数値)=9.45
を返します。

通常の組み込み関数と同じようにワークシート上で使用できる関数です。
説明はこちら
http://kiyopon.sakura.ne.jp/soft/sisuu.htm
ソフトはこちら
http://kiyopon.sakura.ne.jp/soft/sisuu.exe
注意:「アドインソフト」または「ユーザー定義関数」を利用する場合は、「アドインソフトを使う場合の注意点」
http://kiyopon.sakura.ne.jp/soft/addin.html
を必ずお読みください。



戻る
50銭以下のときは切り捨て、51銭以上のときは切 り上げる
銭の単位の数値を50銭以下を切り捨て、51銭以上を切り上げてに円の単位にするのですね。
ROUNDDOWN関数を使います。
A1セルに数値113円45銭が
113.45
と、入力してあるとします。
B1セルに113と表示する数式
=ROUNDDOWN(A1+0.49,0)
と入力します。
数式の意味
セルA1の値に0.49を加算して、ゼロの桁の数値に切り捨てます。

ROUNDDOWN関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「丸め」ROUNDDOWN
http://kiyopon.sakura.ne.jp/kansuu/round.htm#rounddown
を参照してください。



戻る
数式を入力したセルのゼロ値の表示を消すには
数式入力セルのみの選択は、「編集」「ジャンプ」を選択し、「セル選択」ボタンを押して、「数式」のラジオボタンを押し 「OK」ボタンを押します。

セル範囲を選択した状態で、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で「ユーザー定義」 を選択し、「種類」欄に「#;-#;;@」と入力し「OK」ボタンを押します。

「ユーザー定義」の書式設定では、
正の値の書式(この場合数値をそのまま表示)
負の値の書式(この場合数値の先頭に-を付けて表示)
ゼロの書式(この場合何も表示しません)
文字列の書式(この場合文字列をそのまま表示)

を;(セミコロン)で区切って書式を入力します。

正場合の書式;負の場合の書式;0の場合の書式;文字列の場合の書式
で表示書式が指定されます。



戻る
16 桁の数字「1111222233334444」を入力したものを、1111-2222-3333-4444と表示したい
16桁の数値を4桁ずつに区切って"-"をつけるのですね。

エクセルでは、数値の有効桁数が15桁までで、それ以上の数値は、0(ゼロ)になります。
クレジットカードの番号などの場合、16桁ですらから困ります。
この場合は、数値ではなく、文字列として扱えば大丈夫です。
入力するセル範囲を選択し、「書式」「セル」で「セルの書式設定」ダイアログボックスで、「表示形式」タブの「分類」で「文字列」を選択します。
これで、16桁の数値がそのまま表示されます。
次に、入力した文字を4桁ずつに区切って"-"を付けて表示するには、別のセルに関数を入力する必要があります。
例えば、セルA1に
1234123412341234
と入力した場合、セルB1に4桁ずつで区切り文字"-"を入れる場合は、
=left(a1,4)&"-"&mid(a1,5,4)&"-"&mid(a1,9,4)&"-"&right(a1,4)
と入力します。

それぞれの関数の説明は「関数の使い方説明」
http://www.katch.ne.jp/~kiyopon/kansuu/index.htm
の「文字列関数」
LEFT関数
http://www.katch.ne.jp/~kiyopon/kansuu/val.html#left
MID関数
http://www.katch.ne.jp/~kiyopon/kansuu/val.html#mid
RIGHT関数
http://www.katch.ne.jp/~kiyopon/kansuu/val.html#right
を参照してください。



戻る
日付から6ヵ月後の次の日付を返す 1989/6/16→1989/12/17
参考になる質問が「質問と回答」
http://kiyopon.sakura.ne.jp/situmon/index.htm
の「計算式・関数」「2002/10/2」
誕生日の3年1ヶ月後を表示する」にあります。

A1セルに
1989/6/16
と入力してあるとします。

セルB1には、セルA1の日付の6ヵ月後+1日ですから
=EDATE(A1,6)+1
と入力します。
1989/12/17
が返ります。

セルB1に「#VALUE!」エラーが表示されていましたら、「ツール」「アドイン」から「分析ツール」を登録してください。

EDATE関数の説明
開始日から起算して、指定された月数だけ前または後の日付に対応するシリアル値を返します。この関数を使用すると、伝票の発行日と同じ日に当たる支払日や 満期日の日付を計算することができます。
この関数を使うには、セットアッププログラムを実行して分析ツールを組み込み、[ツール]メニューの[アドイン]コマンドを使ってその分析ツールを登録す る必要があります。



戻る
セルに入力したデータから顧客 毎のファイルへのハイパーリンクを自動で設定したい
データセルそのものにリンクを作成することはできませんが、別のセルに対象のセルの文字を利用してハイパーリンクを自動作成 することは可能です。
まず、それぞれの顧客のファイル名はユニークな一意の名前である必要があります。
例えば、「1001.xls」「1002.xls」「1003.xls」
対象のセルの文字列にファイル名が含まれるようにします。
ブック「list.xls」
        A       B       C
1       コード  名前    地域
2       1001    山田    東京
3       1002    青木    大阪
4       1003    森田    福岡
対象のファイルの保存先のフォルダ名が"H:\data"で、ファイル名がA列のコードと同じで、開くシートが"Sheet1"のセル"A1"の場合リン クに示す文字がB列の名前とする場合
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
例1
セルD2には、
=HYPERLINK("H:\data\"&A2&".xls",B2)
と入力します。
数式の意味
文字列"H:\data\"と、セルA2の値と文字列".xls"を文字列結合し、(この場合"H:\data\1001.xls"
となります。)セルには、セルB2の値を表示します。
このセルをコピーして下のセル範囲に貼り付けます。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
例2(見本のファイルを添付します。)
一覧のリストのファイル(例えば"list.xls")保存先フォルダ(例えば"H:\data\")と、個別の顧客ファイルの保存先フォルダが同じ場合 は、いちいちファイルの保存先を入力する必要がありません。
セルD2には、
=HYPERLINK(LEFT(CELL("filename",A1),FIND("[",CELL("filename",A1))-1)&A2&".xls",B2)
と入力します。
数式の意味
ファイルの保存先フォルダ名を含むファイル名(この場合"H:\data\[list.xls]")からファイル名の区切りとなる文字列"["より左の文 字列を取りだして(この場合"H:\data\")、セルA2の値と文字列".xls"を文字列結合し、(この場合"H:\data\1001.xls" となります。)セルには、セルB2の値を表示します。
このセルをコピーして下のセル範囲に貼り付けます。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ハイパーリンクの作成のためのHYPERLINK関数の説明は
「関数の使い方説明」http://kiyopon.sakura.ne.jp/kansuu/index.htm
のHYPERLINK
http://kiyopon.sakura.ne.jp/kansuu/address.html#hyperlink
を参照してください。


戻る
土日祝日を除いた10日後の日付を返す
workday関数を使います。
http://kiyopon.sakura.ne.jp/kansuu/date.html#workday
を参照してください。
この関数を使うには、セットアッププログラムを実行して分析ツールを組み込み、[ツール]メニューの[アドイン]コマンドを使ってその分析ツールを登録する必要があります。

書式=WORKDAY(開始日,日数,祭日)

具体的には、添付ファイルを参照してください。
シート「Sheet1」のセルA1には、開始日付を
2006年7月3日
と入力します。
シートSheet1のセルA1を使って名前の定義で、名前"y"
参照範囲
=YEAR(Sheet1!A1)
が設定してあります。

シート「祝日」には、その年の祝日を自動で計算し、セル範囲A2:A27に「祝日」という名前を定義しています。

シート「Sheet1」のセルB1には、セルA1から、土日祝日を除いた10日後の日付を返します。
=WORKDAY(A1,10,祝日)
と入力します。



戻る
セルにブックのファイル名(例えば"list.xls") を返す
保存先フォルダ名とファイル名が
"H:\data\[list.xls]"
の場合

セルに
=MID(CELL("filename",A1),FIND("[",CELL("filename",A1))+1,FIND("]",CELL("filename",A1))-1-FIND("[",CELL("filename",A1)))
と入力します。
ファイルがまだ保存されていない場合は、#VALUEエラーが返ります。

数式の意味
ファイルの保存先フォルダ名を含むファイル名(この場合"H:\data\[list.xls]")からファイル名の区切りとなる文字列"["より左の文 字位置から、ファイル名の区切りとなる文字列"]"の文字位置から、ファイル名の区切りとなる文字列"["の文字位置を引いた数の文字数を取り出します。

参考
開いているブックのファイル名を返します。
ファイル名」ユー ザー定義関数



戻る
セルにブックの保存先のフォルダ名(例えば"H:\data\")を返す
保存先フォルダ名とファイル名が
"H:\data\[list.xls]"
の場合

セルに
=LEFT(CELL("filename",A1),FIND("[",CELL("filename",A1))-1)
と入力します。
ファイルがまだ保存されていない場合は、#VALUEエラーが返ります。

数式の意味
ファイルの保存先フォルダ名を含むファイル名(この場合"H:\data\[list.xls]")からファイル名の区切りとなる文字列"["の文字位置 より左の文字列を取り出します。

参考

開いているブックのフォルダ名を返します。
フォルダ名」ユー ザー定義関数

を、参照してください。
注意:「アドインソフト」または「ユーザー定義関数」を利用する場合は、「アドインソフトを使う場合の注意点」
http://kiyopon.sakura.ne.jp/soft/addin.html
を必ずお読みください。


戻る
セルの上・下、左・右、上・下・左・右を入れ替える関数
 
A B C D E
1 a e r t y
2 w d f g h
3 c b h j k
4
5 上下左右反対
6 k j h b c
7 h g f d w
8 y t r e a
9
10 左右反対
11 y t r e a
12 h g f d w
13 k j h b c
14
15 上下反対
16 c b h j k
17 w d f g h
18 a e r t y
セルA1:E3に文字列が入力してあるとします。
セル範囲A1:E3を選択し、「挿入」「名前」「定義」で名前を「LIST」と付けます

(あるいは、セル範囲A1:E3を選択し、行列番号の左上端の「名前ボックス」の部分に「LIST」と入力します。)
これで、セル範囲A1:E3を選択すると、行列番号の左上端の「名前ボックス」に「LIST」と表示されます。

「上下左右反転」
セル範囲C6:K8を選択し、
=INDEX(LIST,ROWS(LIST)-ROW(LIST)+1,COLUMNS(LIST)-COLUMN(LIST)+1)
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。
数式の意味
セル範囲LISTの行数(この場合3)から、セル範囲LISTの該当行番号を減算し(この場合1)+1(この場合3-1+1=3)を行番号とし、セル範囲 LISTの列数(この場合5)から、セル範囲LISTの該当列番号を減算し(この場合1)+1(この場合5-1+1=5)を列番号としてセル参照式(この 場合行番号3、列番号5のセルですから、セルE3を参照)とします。

「左右反転」
セル範囲C6:K8を選択し、
=INDEX(LIST,ROW(LIST),COLUMNS(LIST)-COLUMN(LIST)+1)
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。
数式の意味
セル範囲LISTの該当行番号(この場合1)を行番号とし、
セル範囲LISTの列数(この場合5)から、セル範囲LISTの該当列番号を減算し(この場合1)+1(この場合5-1+1=5)を列番号としてセル参照 式(この場合行番号1、列番号5
のセルですから、セルE1を参照)とします。

「上下反転」
セル範囲C6:K8を選択し、
=INDEX(LIST,ROWS(LIST)-ROW(LIST)+1,COLUMN(LIST))
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。
数式の意味
セル範囲LISTの行数(この場合3)から、セル範囲LISTの該当行番号を減算し(この場合1)+1(この場合3-1+1=3)を行番号とし、セル範囲 LISTの該当列番号(この場合1)を列番号としてセル参照式(この場合行番号3、列番号1のセルですから、セルA3を参照)とします。

それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「検索+行列」INDEX
http://kiyopon.sakura.ne.jp/kansuu/address.html#index
ROWS
http://kiyopon.sakura.ne.jp/kansuu/address.html#rows
ROW
http://kiyopon.sakura.ne.jp/kansuu/address.html#row
COLUMNS
http://kiyopon.sakura.ne.jp/kansuu/address.html#columns
COLUMN
http://kiyopon.sakura.ne.jp/kansuu/address.html#column
を参照してください。



戻る
セルに入力した生年月日から60歳の退職年度を算出し たい
 
 
セルA5に生年月日が
1945/10/5
のように日付シリアル値として入力してあるとします。

セルE5には、60歳になる年を返す
=DATE(YEAR($A5)+60-IF(MONTH($A5)-IF(TEXT($A5,"mmdd")="0401",1,0)<4,1,0),3,31)
と入力します。

数式の意味
セル$A5の年に60を加算し、もし、セル$A5の月と日をつなげた文字列が"0401"の場合は、セル$A5の月から1を引きます。
その値が4未満の場合は、1を引いた月の3月31日の日付シリアル値を返します。

元号の年度表示"平成○○年度"とするために、セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形 式」の「分類」で「日付」を選択し「種類」欄に「ggge"年度"」と入力し、「OK」ボタンを押します。

それぞれの関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「日付+時刻」
DATE
http://kiyopon.sakura.ne.jp/kansuu/date.html#date
MONTH
http://kiyopon.sakura.ne.jp/kansuu/date.html#month
YEAR
http://kiyopon.sakura.ne.jp/kansuu/date.html#year
DAY
http://kiyopon.sakura.ne.jp/kansuu/date.html#day
 



戻る
7月25日16時 から7月29日7時までで3.15(3日と15時間の意味)と計算できる関数
1セルに、日付と時刻半角スペースを入れて
2006/7/25 16:00
と入力します。
セルの値は、日付シリアル値で
38923.6666666667
です。
セルの表示を
7/25 16:00
とするために、セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で「ユーザー定義」を選択し「種 類」欄に「m/d h:m」と入力し、「OK」ボタンを押します。

B1セルに、日付と時刻半角スペースを入れて
2006/7/29 7:00
と入力します。
セルの値は、日付シリアル値で
38927.2916666667
です。
セルの表示を
7/29 7:00
とするために、セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で「ユーザー定義」を選択し「種 類」欄に「m/d h:m」と入力し、「OK」ボタンを押します。

C1セルに
=INT(B1-A1)+((B1-A1)-INT(B1-A1))/100*24
と入力します。
セルに値を
3.15
と表示するために、セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスで、「表示形式」の「分類」で「標準」を選択し、 「OK」ボタンを押します。

数式の意味
セルB1の値からセルA1の値を引いて整数値のみを返し(この場合38927.2916666667-38923.6666666667=3.625です から3が返ります)
セルB1の値からセルA1の値を引いた値(この場合3.625)から、セルA2の値からセルA1の値を引いた整数値の値(この場合3)を引いた値(この場 合0.625)を100で割って、
さらに24で割った値を返します。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
あるいはもっと簡単な方法で、日付と時刻をそのまま文字列から数値に変換するには
セルに
=VALUE(TEXT(A2-A1,"d.h"))
と入力します。
数式の意味
セルA2の値からセルA1の値を引いて、表示形式を"d.h"(日.時)の文字列とし、数値に変換します。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
それぞれの関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「数学+三角」INT
http://kiyopon.sakura.ne.jp/kansuu/abs.html#INT
「文字列関数」VALUE
http://kiyopon.sakura.ne.jp/kansuu/val.html#value




戻る
前年度との比較で、マイナスのパーセントを表示する
前年と比較するならば、増減のみを計算したらいいですね。
 
A B C D E
1
2 前年度実績 今年度実績 増減対比 対前年比
3 沼田 500 750 +50% 150%
4 池田 100 0 -100% -100%
5 川田 600 580 -3% 97%
セルD3に
=(C3-B3)/B3
と入力します。
この式をコピーして、下のセル範囲に貼り付けます。
セル範囲D3:D5を選択し、書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で「ユーザー定義」を選択し「種 類」欄に「+0%;-0%;0%」と入力し、「OK」ボタンを押します。

あるいは、前年に対する比を表すには
セルE3に
=IF(C3<=0,1-(C3-B3)/B3,IF(C3>0,1+(C3-B3)/B3,(C3-B3)/B3))
と入力します。
この式をコピーして、下のセル範囲に貼り付けます。
セル範囲D3:D5を選択し、書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で「ユーザー定義」を選択し「種 類」欄に「0%;-0%;"±"0%」と入力し、「OK」ボタンを押します。
 



戻る
セル範囲A1:A12で、データの入力さ れている最後のセルの値を返す
「配列数式」とINDIRECT関数を使います。
セルには、
=INDIRECT("A"&MAX(IF($A$1:$A$12<>"",ROW($A$1:$A$12))))
と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

数式の意味
文字列"A"と、もしセル範囲$A$1:$A$12の値が何も入力されていない以外は、対象のセル範囲$A$1:$A$12の行番号の最大値を返し、文字 列結合関数で結合し、"A1"
形式のセル参照式とします。
 

セル範囲A2:F2で、データの入力されている最後のセルの値を返す
セルには、
=INDIRECT("R2C"&MAX(IF($A$2:$F$2<>"",COLUMN($A$2:$F$2))),FALSE)
と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」
として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

数式の意味
文字列"R2C"と、もしセル範囲$A$12:$F$2の値が何も入力されていない以外は、対象のセル範囲$A$12$F$2の列番号の最大値を返し、文 字列結合関数で結合し、"R1C1"形式のセル参照式とします。

それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「検索+行列」
INDIRECT
http://kiyopon.sakura.ne.jp/kansuu/address.html#indirect
ROW
http://kiyopon.sakura.ne.jp/kansuu/address.html#row
COLUMN
http://kiyopon.sakura.ne.jp/kansuu/address.html#column
「数学+三角」
MAX
http://kiyopon.sakura.ne.jp/kansuu/abs.html#max
「論理関数」
IF
http://kiyopon.sakura.ne.jp/kansuu/if.html#if
を参照してください。



戻る
参照先のセルにデータが入 力されてないと表示が日付が1月0日と表示されてしまいます
セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で「ユーザー定 義」を選択し、「種類」欄に「m"月"d"日";;;@」と入力し、「OK」ボタンを押します。

書式の意味
正の値の書式;負の値の書式;ゼロの書式;文字列の書式
正の値の書式はm"月"d"日"
負の値の書式は何も表示しません
ゼロの値の書式は何も表示しません
文字列の書式 入力された文字列をそのまま表示します



戻る
先頭に文字列を含む数値の引算  AAA000300〜AAA000399=100
添付ファイルを参照してください。
文字列の長さが左から3桁で決まっていれば、RIGHT関数で、数値のみを切り出します。
具体的には、
セルA1に
AAA000300
セルB1Iに
AAA000399
が入力されているとします。
セルC1には、
=RIGHT(B1,LEN(B1)-3)-RIGHT(A1,LEN(A1)-3)+1
と入力します。
100
が返ります。
数式の意味
セルB1の文字数から3を減じた文字数をセルB1の右から取りだし、(この場合000300が返ります)
セルA1の文字数から3を減じた文字数をセルA1の右から取りだして(この場合000399が返ります)
引き算し、+1します。

それぞれの関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」
LEN
http://kiyopon.sakura.ne.jp/kansuu/val.html#len
RIGHT
http://kiyopon.sakura.ne.jp/kansuu/val.html#right
を参照してください。



戻る
検索値が「開始」と「終了」の間にある場合該当行に ★を返す
シリアルNo.は、開始と終了を別のセルに入力します。
 
A B C D E
1 日付 シリアルNo 個数
2 6月1日 AA10000 AA10300 301
3 6月2日 AA10300 AA10500 201
4 6月5日 AB00010 AB00020 21
5 6月7日 FF00020 FF00100 81
6 6月9日 SS00025 SS00080 56
7
8 AB00015
セルB8に検索値の
AB0015
を入力します。

セルD2には、
=IF(AND($B$8>=B2,$B$8<=C2),"★","")
と入力します。

数式の意味
もし、セル$B$8の値が、セルB2以上で、かつ、セル$B$8の値がセルC2以下の場合は、"★"を返し、それ以外は何も返しません。
このセルをコピーして下のセル範囲D3:D6に貼り付けます。




数 式=k^3/3-k^2*(1-β)-2*k*np*(γ*(1-α-β)-β)+2*np*(α*γ*(1-α-β)-β)の場合kの値は
 
添付ファイルを参照してください。
ゴールシークを使います。
数式の計算結果で、あらかじめ目標としたい値がある時、ゴールシークを利用すると便利です。
ゴールシークとは、数式の目標値から代入値を逆算する機能のことです。
なおゴールシークを利用して、値を変化させることができるセルは1つだけです。
数式が違っていましたので、修正しました。
それぞれの定数α、β、γ、npを
セルA3,B3,C3,D3に入力しています。
求めたい値kは、セルE3に表示されます。
それぞれのセルには名前をα、β、γ、np、kと定義してあります。

A1セルには、数式を次のように入力します。
=k^3/3-k^2*(1-β)-2*k*np*(γ*(1-α-β)-β)+2*np*(α*γ*(1-α-β)-β)

セルA1を選択し、「ツール」「ゴールシーク」を選択し、「ゴールシーク」ダイアログボックスの「数式入力セル」に「A1」が入力されてい ることを確認し、「目標値」に「0」と入力し、「変化させるセル」に、名前「k」またはセル参照の「E3」と入力し、「OK」ボタンを押します。

「セルA1の収束値を探索しています。」「解答が見つかりました」「目標値:0」
「現在地:-0.0000000289989713 」と、目標値から逆算した値が表示されます。
「OK」ボタンを押せば、A1セル及び、E3セルに結果が反映されます。
目標値
-0.0000000289989713353478
k
0.513696158988435
などと表示されます。

ゴールシークは、最適値を求めるために反復計算を行っています。反復計算の回数が100回を越えるか、目標値に対する誤差が、0.001未 満になるまで計算を繰り返します。
より高い精度が必要な場合は、このデフォルトの値を変更してください。これにはまず、「ツール」「オプション」をクリックし、「計算方法」タブを開き、「
最大反復回数」ボックスの値を100より大きくするか「変化の最大値」ボックスの値を0.001よりも小さくしてください。

「解答が見つかりませんでした」と表示された場合は、値を変化させるセルに入力した初期値を目標値に近い値に変更して、ゴールシークを再度 実行します。



戻る
100〜300 までの数の中で150までは×80、151から170までは×85、171以上は×100という計算をしたい
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
二つの方法があります。

IF関数を使う

セルA1に数値が入力してあるとします。
セルB1に
=A1*IF(A1<=150,80,IF(A1<=170,85,100))
と入力します。
数式の意味
セルA1の値×もし、セルA1の値が150以下の場合は、80を、もしセルA1の値が170以下の場合は、85を、それ以外は100を返して乗算します。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
VLOOKUP関数を使う
セル範囲に数値範囲に対する返数のリストを作成します。
        A       B       C       D
1
2               以上    未満    返数
3               0       151     80
4               151     171     85
5               171             100
6
セルA1に数値を入力します。
セルA6には
=A1*VLOOKUP(A1,B3:D5,3,TRUE)
と入力します。
数式の意味
セルA1の値×セルA1の値を検索値として、セル範囲B3:D5の左端列(この場合B列)の値に該当する3列目の値を返して乗算します。
それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
「論理関数」IF
http://kiyopon.sakura.ne.jp/kansuu/if.html#if
「検索+行列」VLOOKUP
http://kiyopon.sakura.ne.jp/kansuu/address.html#vlookup


戻る
指定した日付から30日間の数字を集計したい
添付ファイルを参照してください。
セルD5には、
=SUM(IF($A$7:$A$1000>=D$3,IF($A$7:$A$1000<=D$3+30,D$7:D$1000)))
と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」
として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。
数式の意味
もし、セル範囲$A$7:$A$1000の値が、セルD$3の値以上で、かつ、もし、セル範囲$A$7:$A$1000
の値が、セルD$3の値+30以下の場合は、該当するセル範囲D$7:D$1000の値を返し
て合計します。

同様に、セルD6には、
=SUM(IF($A$7:$A$1000>=D$3+31,IF($A$7:$A$1000<=D$3+60,D$7:D$1000)))
と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」
として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。
数式の意味
もし、セル範囲$A$7:$A$1000の値が、セルD$3+30の値以上で、かつ、もし、セル
範囲$A$7:$A$1000の値が、セルD$3の値+60以下の場合は、該当するセル範囲D$7:D$1000
の値を返して合計します。



戻る
二つの列の同じ数値の入力された列数の差を表示したい
添付ファイルを参照してください。
セルB12には、
=MIN(IF(A12=$A$2:$E$2,COLUMN($A$2:$E$2)))-MIN(IF(A12=$A$5:$E$5,COLUMN($A$5:$E$5)))
と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」
として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。
数式の意味
もし、セルA12の値がセル範囲$A$2:$E$2の値と等しい場合、該当する列番号の最小値を返し、その値から
もし、セルA12の値がセル範囲$A$5:$E$5の値と等しい場合、該当する列番号の最小値を返して、減算します。
それぞれの関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「統計関数」MIN
http://kiyopon.sakura.ne.jp/kansuu/avedev.html#MIN
「論理関数」IF
http://kiyopon.sakura.ne.jp/kansuu/if.html#if
「検索+行列」のCOLUMN
http://kiyopon.sakura.ne.jp/kansuu/address.html#column




戻る
COUNTIF関数で 別のファイルのデータ数を検索するとエラー(#VALUE!)になる
Microsoftのサポートに回避策が出ています。
[XL2002]SUMIF、COUNTIF、COUNTBLANK 関数で#VALUE!エラー
http://support.microsoft.com/default.aspx?scid=kb;ja;260415&Product=xlw2kINT


戻る
数字を含んだ文字列(数量  1452678 巻き)の中の数字に桁区切りをしたい
御質問の場合は、文字列と数値が、区切り文字もなく入力されていますので、このままでは、無理です。
添付ファイルを参照してください。
まず、区切り文字として訂正前の文字列に、数値と文字の間に全角スペース" "を入れておきます。
具体的には、
        D
2       訂正前
3       4,252
4       面積 1356320
5       数量 1452678 巻き
6       規模5F延床 3690150 m2
とします。

     E
2     訂正後
3     4,252
4     面積 1,356,320
5     数量 1,452,678 巻き
6     規模5F延床 3,690,150 m2
 

セルE3には、数式で、セルD3の文字列の数値に桁区切りを入れる
=IF(ISNUMBER(D3),TEXT(D3,"#,###"),LEFT(D3,FIND(" ",D3))&IF(ISNUMBER (VALUE(RIGHT(D3,LEN(D3)-FIND(" ",D3)-1))),TEXT(RIGHT(D3,LEN(D3)-FIND("  ",D3)),"#,###"),TEXT(MID(D3,FIND(" ",D3)+1,FIND(" ",D3,FIND(" ",D3)+1)-1 -FIND(" ",D3)),"#,###")))&IF(ISERROR(FIND(" ",D3,FIND(" ",D3,FIND("  ",D3)+1))),"",RIGHT(D3,LEN(D3)-FIND(" ",D3,FIND(" ",D3,FIND(" ",D3)+1))+ 1))
と入力します。
この式をコピーして下のセル範囲に貼り付けます。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」
TEXT
http://kiyopon.sakura.ne.jp/kansuu/val.html#text
LEFT
http://kiyopon.sakura.ne.jp/kansuu/val.html#left
FIND
http://kiyopon.sakura.ne.jp/kansuu/val.html#find
RIGHT
http://kiyopon.sakura.ne.jp/kansuu/val.html#right
LEN
http://kiyopon.sakura.ne.jp/kansuu/val.html#len
「情報関数」
ISNUMBER
http://kiyopon.sakura.ne.jp/kansuu/cell.html#isnumber
ISERROR
http://kiyopon.sakura.ne.jp/kansuu/cell.html#iserror
「論理関数」
IF
http://kiyopon.sakura.ne.jp/kansuu/if.html#if
を参照してください。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
別の方法として、「データ」「区切り位置」を使う手順
全角スペース" "を区切り位置として別のセルに分割し、数値セルの表示を桁区切りにして、文字列結合関数で、複数セルの文字列を結合して返します。
セルG3には、
=TEXT(D3,"#,###")&" "&TEXT(E3,"#,###")&" "&F3
と入力しておきます。
この式をコピーして、下のセル範囲に貼り付けます。
セル範囲D3:D6を選択し、「データ」「区切り位置」を選択し、「区切り位置指定ウィザード-1/3」ダイアログボックスで、「元のデータの形式」グ ループで「カ
ンマやタブなどの区切り文字によってフィールド毎に区切られたデータ」のチェックを入れ、「次へ」ボタンを押し、「区切り位置指定ウィザード-2/3」ダ イア
ログボックスで、「区切り文字」の「スペース」のチェックを入れ「完了」ボタンを押します。
セル範囲G3:G6に数値が桁区切りで表示された文字列が返りますので、セル範囲G3:G6を選択し、「編集」「コピー」します。
貼り付け先のセルに、元のセルD3を選択し、「編集」「形式を選択して貼り付け」を選択し、「形式を選択して貼り付け」ダイアログボックスで、「貼り付 け」
グループの「値」にチェツクを入れ「OK」ボタンを押します。
セル範囲E3:G6のデータは削除します。



戻る
エクセルで√はどう入力したらよいのですか
SQRT関数を使います。
SQRT関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「数学+三角」SQRT
http://kiyopon.sakura.ne.jp/kansuu/abs.html#sqrt
を参照してください。


戻る
セルに全角スペースが入っているのを抽出したい
FIND関数を使います。
セルA1に文字列が
ヤマダ タロウ
と入力されているとします。
全角スペースが文字列にあるかどうかを判定する数式
=IF(ISERROR(FIND(" ",A1)),"×",A1)
と入力します。
全角スペースが入力されていれば、A1セルの文字列が返ります。
全角スペースが入力されていない場合は、"×"が返ります。

それぞれの関数の説明は、「文字列関数」
FIND
http://kiyopon.sakura.ne.jp/kansuu/val.html#find
「情報関数」
ISERROR
http://kiyopon.sakura.ne.jp/kansuu/cell.html#iserror
を参照してください。



戻る
データ一の中から奇数と偶数それぞれの合計を知りたい
セルの値が奇数と、偶数の値の合計を返す
セルの値が、奇数か偶数かを返すには、セルの数値を2で除算した残りの数値が0か1かを判定します。
0の場合は偶数で、1の場合は奇数です。

「配列数式」でセル範囲の数値を偶数か奇数か判定し、該当のセルの数値を合計します。
具体的には、次のようになります。

セル範囲A1:A10の値が奇数のセル範囲A1:A10の数値を合計する
=SUM(IF(MOD(A1:A10,2)=1,A1:A10))
と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

セル範囲A1:A10の値の奇数のセル範囲A1:A10の数値を合計する
=SUM(IF(MOD(A1:A10,2)=0,A1:A10))
と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

MOD関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「数学+三角」
http://kiyopon.sakura.ne.jp/kansuu/abs.html#mod
を参照してください。


参考に、セルの行が偶数と、奇数の合計を返す

セルの行が、奇数か偶数かを返すには、セルの行番号を2で除算した残りの数値が0か1かを判定します。
0の場合は偶数で、1の場合は奇数です。

セル範囲A1:A10の奇数行のセル範囲A1:A10の値の値の合計
=SUM(IF(MOD(ROW(A1:A10),2)=1,A1:A10))
と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

セル範囲A1:A10の偶数行のセル範囲A1:A10の値の合計
=SUM(IF(MOD(ROW(A1:A10),2)=0,A1:A10))
と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

ROW関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「検索+行列」ROW
http://kiyopon.sakura.ne.jp/kansuu/address.html#row
を参照してください。



戻る
A1セルに入力した値をA1セルに累計する
ワークシート関数では、入力セルと同じセルに加算結果を返すことはできません。

添付ファイルを参照してください。
マクロで作成しました。
対象のシートのセルA1に数値を入力すると、セルA1にその累計を返します。

下のマクロコードをコピーし、該当のシートタグをマウスの右ボタンで選択して「コードの表示」を選択します。
表示された「MicrosoftVisualBasic」のシート右側の空白部分に貼り付けます。
「MicrosoftVisualBasic」を終了して「エクセル」に戻るには「ファイル」「終了してMicrosoftExcelに戻る」を選択しま す。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim r, c, n
r = Target.Row
c = Target.Column
'rは、行番号
'Cは、列番号
'この場合はA1セルですので、行1列1です。
If r = 1 And c = 1 Then
'イベントが発生しないように
Application.EnableEvents = False
On Error Resume Next
If ActiveWorkbook.Names.Count = 0 Then
'「変数」という名前を値[=0]で定義します
    ActiveWorkbook.Names.Add Name:="変数", _
    RefersToR1C1:="=0"
End If
'名前「変数」の値を変数nに代入します
n = ActiveWorkbook.Names("変数").Value
'セルA1の値+変数nをセルA1の値にします
'もしセルA1の値が何も入力してない場合は、
'変数の値もリセットします。
If Cells(r, c) = "" Then
    ActiveWorkbook.Names.Add Name:="変数", _
    RefersToR1C1:="=0": GoTo en
    End If
Cells(r, c) = n & "+" & Cells(r, c)
'名前「変数」をセルA1の値に再定義します
    ActiveWorkbook.Names.Add Name:="変数", _
    RefersToR1C1:=Cells(r, c).Value
'イベントが発生します
en:
    Application.EnableEvents = True
Else
End If
End Sub




1 日の場合はA1、2日の場合はSUM(A1:B1)、3日の場合はSUM(A1:C1)というように加算する範囲を増やしていきたい
添付ファイルを参照してください。
セルP10には、セルJ10の日付までの4行目のセル範囲の値を合計する数式
=SUM(INDIRECT("R4C2:R4C"&$J$10+1,FALSE))
と入力します。
数式の意味
文字列"R4C2:R4C"とセル$J$10の値+1(この場合11+1=12)の値を文字列結合関数&で結合し、"R1C1"形式のセル参照式 (この場合=R4C2:R4C12)とします。

セルP11には、セルJ10の日付まで5行目のセル範囲の値を合計する数式
=SUM(INDIRECT("R5C2:R5C"&$J$10+1,FALSE))
と入力します。
文字列"R5C2:R5C"とセル$J$10の値+1(この場合11+1=12)の値を文字列結合関数&で結合し、"R1C1"形式のセル参照式 (この場合=R4C2:R4C12)とします。
INDIRECT関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「検索+行列」INDIRECT
http://kiyopon.sakura.ne.jp/kansuu/address.html#indirect
を参照してください。



戻る
A1セルに氏名を入 力し、B1セルに文字数を20に限定して、残りの後ろをスペースにしたい
 
REPT関数で、別のセルに指定の文字数の空白をつないで返します。

A1セルに、氏名を
田中和夫
と入力したとします。

B1セルに、20文字になるように、A1セルの文字列の後ろに全角スペースを補って
返す数式
=A1&REPT(" ",20-LEN(A1))
と入力します。
数式の意味
セルA1の値と、20からセルA1の文字数を引いた数の全角スペース" "を、文字列
結合関数で結合して返します。

それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」REPT
http://kiyopon.sakura.ne.jp/kansuu/val.html#rept
LEN
http://kiyopon.sakura.ne.jp/kansuu/val.html#len



戻る
別々のセルに入力した、「年」「月」「日」から曜 日を表示する
 
A B C D E F G H I
1 2006 4
2 1 2 3 4 5 6 7
3
セルC3には、セルA1の「年」、セルB1の「月」、セルC2の「日」から日付シリアル値を返す数式
=DATE($A$1,$C$1,C2)
と入力します。
このセルを曜日表示にするには、セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で「ユーザー定 義」を選択し、「種類」欄に「aaa」と入力し、「OK」ボタンをおします。
DATE関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「日付+時刻」DATE
http://kiyopon.sakura.ne.jp/kansuu/date.html#date
を参照してください。

参考になる土日祝日も色づけするカレンダーが、
「質問と回答」
の「計算式・関数」「2001/8/27」
年月を入れるだけで、カレンダーの日付と曜日を自動表示したい
土曜日・日曜日の日付を自動で色付けする」にあります。
http://kiyopon.sakura.ne.jp/situmon/kaitou/calendar.xls



戻る
A1セルに"1000 250 4"と入力するとB1セルに1000g (250g×4pce)と表示させたい
区切り文字として" "(半角スペース)を使用した場合は次の用に数式を入力することで、どのような桁数でも表示できます。

=LEFT(A1,FIND(" ",A1)-1)&"g ("&MID(A1,FIND(" ",A1)+1,FIND(" ",A1,FIND("",A1)+1)-1-FIND(" ",A1))&"g×"&RIGHT(A1,LEN(A1)-FIND(" ",A1,FIND(" ",A1)+1))&"pcs)"

区切り文字として" "(半角スペース)を使用した場合
(区切り文字はスペース以外でも、数式中の" "を変更すれば、カンマ","でも何でも良いです)
例えば
1000 250 4
または、
10000 1000 10
と入力した場合は、次の用に数式を入力することで、どのような桁数でも表示できます。
=LEFT(A1,FIND(" ",A1)-1)&"g ("&MID(A1,FIND(" ",A1)+1,FIND(" ",A1,FIND(" ",A1)+1)-1-FIND(" ",A1))&"g×"&RIGHT(A1,LEN(A1)-FIND(" ",A1,FIND(" ",A1)+1))&"pcs)"

数式の意味
A1セルの値が
10000 1000 10
の場合
LEFT(A1,FIND(" ",A1)-1)
文字列A1の左から、A1セルの文字列中の半角スペース" "の文字位置-1の位置まで切りだし、
(この場合、半角スペース位置6-1=5文字で、10000)
文字列"g ("と文字列結合関数&で結合し、

MID(A1,FIND(" ",A1)+1,
文字列A1の、A1セルの文字列中の半角スペース" "の文字位置+1の文字位置から、(この場合、半角スペース位置6+1=7)

FIND(" ",A1,FIND(" ",A1)+1)-1-FIND(" ",A1))
A1セルの文字列中の半角スペース" "の文字位置+1の位置(この場合、半角スペース位置6+1=7)
から半角スペース" "を検索した文字位置-1
(この場合11-1=10)
から、A1セルの文字列中の半角スペース" "の文字位置を引いた文字数(この場合先ほどの10-6=4)を返す。
(したがって7文字目から4文字を返すので1000)

"g×"&RIGHT(A1,LEN(A1)-FIND(" ",A1,FIND(" ",A1)+1))&"pcs)"
文字列"g×"と
A1セルの左から、A1セルの文字の長さ(この場合13)から
A1セルの文字列中の半角スペース" "の文字位置+1の位置(この場合、半角スペース位置6+1=7)
を開始位置として半角スペース" "を検索した文字位置+1(この場合10+1=11)
(したがって13文字目から11文字を引くので2文字=10)
を返します。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
FIND関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」FIND
http://kiyopon.sakura.ne.jp/kansuu/val.html#find
を参照してください。



戻る
源泉徴収税額表より税額を求める関数の式
添付ファイルを参照してください。
セルA1には、その月の社会保険料等控除後の給与等の金額 160000
セルA2には、扶養親族などの数 2
セルA3には、給与所得の源泉徴収税額表からの税額
「給与所得者の扶養控除等申告書」(以下この表において「扶養控除等申告書」といいます。)の提出があった人の計算結果を返す式
=IF(A1<B8,0,VLOOKUP(A1,B8:L396,3+IF(A2>7,7,A2),TRUE)+IF(AND(A1>B389,A1<B396),(A1-B389)*28.5%,0)-IF(A2>7,(A2-7)*2850,0))
と入力します。
数式の意味
セルA1の値を検索値として、セル範囲B8:L396の左端列(この場合A列)の値を検索し、該当する行の3+もしA2の値が7を超過する場合は、7それ 以外はA2の数値を加算した数値列目の値(この場合3+2=5で、F列)を返します。
その値に、もしA1の値がセルB338を超過し、セルB396の値未満の場合は、A1セルの値からセルB389の値を引いた値の28.5%の値を加算しま す。
その値から、もしA2セルの値が7を超過していた場合A2の値-7の値×2850を減じます。

VLOOKUP関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「検索+行列」VLOOKUP
http://kiyopon.sakura.ne.jp/kansuu/address.html#vlookup
を参照してください。



戻る
参照先の行削除や挿入をしても参照をその行のままにし たい
添付ファイルを参照してください。
INDIRECT関数を使います。
セル参照式を文字列で指定できるため、参照先のセルを移動してもセル参照先セル番地が移動しません。

シート「社員名簿」

 
A B C D E
1 番号 氏名 ふりがな 住所 生年月日
2 1 上野 一郎 うえの いちろう 東京都新宿区新宿1-1-1 昭和28年01月01日
3 2 上野 太郎 うえの たろう 東京都新宿区新宿1-1-2 平成05年08月09日
4 3 大野 花子 おおの はなこ 東京都新宿区新宿1-1-3 昭和55年07月08日
5 4 大野 桃子 おおの ももこ 東京都新宿区新宿1-1-4 昭和40年01月01日
6 5 鈴木 太郎 すずき たろう 東京都新宿区新宿1-1-5 昭和20年02月01日
7 6 鈴木 一郎 すずき いちろう 東京都新宿区新宿1-1-6 昭和25年04月01日
8 7 上野 一郎 うえの いちろう 東京都新宿区新宿1-1-7 昭和28年01月01日
9 8 上野 太郎 うえの たろう 東京都新宿区新宿1-1-8 平成05年08月09日
シート「住所」
 
A B C
1 番号 氏名 住所
2 1 上野 一郎 東京都新宿区新宿1-1-1
3 2 上野 太郎  東京都新宿区新宿1-1-2
4 3 大野 花子 東京都新宿区新宿1-1-3
5 4 大野 桃子 東京都新宿区新宿1-1-4
6 5 鈴木 太郎 東京都新宿区新宿1-1-5
7 6 鈴木 一郎 東京都新宿区新宿1-1-6
8 7 上野 一郎 東京都新宿区新宿1-1-7
シート「住所」のセルA1には、シート「社員名簿」のセルA1への参照式を返します。
=INDIRECT("社員名簿!R"&ROW()&"C"&COLUMN(),FALSE)
と入力します。
数式の意味
文字列"社員名簿!R"と、数式入力セルの行番号(この場合1)と、文字列"C"と、数式入力セルの列番号(この場合1)を文字列結合関数(&) で結合し、"R1C1"形式のセル参照式とします。
(この場合"R1C1"への参照式が返ります)
この式をコピーして下のセル範囲A2:A37に貼り付けます。
同様に右のセル範囲B1:B37に貼り付けます。

セルC1には、シート「社員名簿」のセルD1への参照式を返します。
=INDIRECT("社員名簿!R"&ROW()&"C"&COLUMN()+1,FALSE)
と入力します。
数式の意味
文字列"社員名簿!R"と、数式入力セルの行番号(この場合1)と、文字列"C"と、数式入力セルの列番号+1(この場合3+1=4)を文字列結合関数 (&)で結合し、"R1C1"形式のセル参照式とします。(この場合"R1C4"への参照式が返ります)
この式をコピーして下のセル範囲に貼り付けます。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
同様に、
シート「生年月日」のセルA1には、シート「社員名簿」のセルA1への参照式を返します。
=INDIRECT("社員名簿!R"&ROW()&"C"&COLUMN(),FALSE)と入力します。
数式の意味
文字列"社員名簿!R"と、数式入力セルの行番号(この場合1)と、文字列"C"と、数式入力セルの列番号(この場合1)を文字列結合関数(&) で結合し、"R1C1"形式のセル参照式とします。(この場合"R1C1"への参照式が返ります)
この式をコピーして下のセル範囲A2:A37に貼り付けます。
同様に右のセル範囲B1:B37に貼り付けます。

セルC1には、シート「社員名簿」のセルD1への参照式を返します。
=INDIRECT("社員名簿!R"&ROW()&"C"&COLUMN()+2,FALSE)
と入力します。
数式の意味
文字列"社員名簿!R"と、数式入力セルの行番号(この場合1)と、文字列"C"と、数式入力セルの列番号+2(この場合3+2=5)を文字列結合関数 (&)で結合し、"R1C1"形式のセル参照式とします。(この場合"R1C5"への参照式が返ります)
この式をコピーして下のセル範囲に貼り付けます。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
INDIRECT関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「検索+行列」INDIRECT
http://kiyopon.sakura.ne.jp/kansuu/address.html#indirect
を参照してください。



戻る
セルの値が○だったら1、 ●だったら2、△だったら3、×だったら4を隣のセルに返す
2つの方法があります。
1つ目は、
IF関数を使います。
B1セルの値○●△×に応じて1,2,3,4を返します。
=if(B1="○",1,if(B1="●",2,if(B1="△",3,if(B1="×",4))))

2つ目はリストを作成しその値からVLOOKUP関数で検索した値を返します。

 
A B C
1 2
2
3
4
5 1
6 2
7 3
8 × 4
リストはA5:B8に作成します。
セルA5に該当するデータをセルB5に入力し、以下同様にセルA6:B8まで入力します。
セルC1には、
=VLOOKUP(B1,A5:B8,2,FALSE)
と入力します。
VLOOKUP関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「検索+行列」VLOOKUP
http://kiyopon.sakura.ne.jp/kansuu/address.html#vlookup
を参照してください。


戻る
日付が土日の場合その前の平日を関数で返す
セルA1に日付が
H18/3/28
あるいは、
2006/3/28
のように
日付シリアル値で認識される日付入力形式で入力してあるとします。
A2セルに
=IF(WEEKDAY(A1-1,2)>=6,A1-1-WEEKDAY(A1-1,2)+5,A1-1)
と入力します。
数式の意味
もしA1セルの前日の曜日が土、日の場合、A1セルの前日の値-A1セルの曜日の数値(月曜日が1で日曜日は7)+5の日付を返し、それ以外はA1セルの 前日の日付を返します。

WEEKDAY関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「日付+時刻」WEEKDAY
http://kiyopon.sakura.ne.jp/kansuu/date.html#weekday
を参照してください。

関連する内容:日付が土日の場合その後ろの平日を関数で返す



戻る
セルに入力した時刻3:45を計算式で345にする
セルE7に入力した時刻
3:45
を計算式で
345
に変換するには、
セルF9に
=INT(E7*24)*100+(E7*24-INT(E7*24))*60
と入力します。
数値の
345
が返ります。


戻る
第2・第4土曜日のみセルの色を変更する
セルB1には、西暦の年を
2006
と入力してあります。
セルC1には、月を
3
と入力してあります。
セル範囲A3:A33には、日を
1から31まで入力してあります。

セルの色を変更するセル範囲A3:O33を選択し、セルA3がアクティブの状態で、「条件付き書式」を選択し、「条件付き書式の設定」ダイ アログボックスで、「条件1」で、「数式が」を選択し、
(エクセル2007以降の場合、[ホーム]リボンの、「スタイル」の中から[条件付き書式]を選択し、「新しいルール]を選択します。
「新しい書式ルール」ダイアログボックスで、「ルールの種類を選択してください」の中から、「数式を使用して、書式設定するセルを決定」を選択し、[ルールの内容を編集しいてください]で、「次の数式を満たす場合に値を書式設定」の中に、数式を)
「=WEEKDAY(DATE($B$1,$C$1,$A3),2)=7」と入力し、「書式」ボタ ンを押して「パターン」の「色」を選択し、「OK」ボタンを押します。
「追加」ボタンを押し、「条件付き書式」を選択し、「条件付き書式の設定」ダイアログボックスで、「条件1」で、「数式が」を選択し、
(エクセル2007以降の場合、[ホーム]リボンの、「スタイル」の中から[条件付き書式]を選択し、「新しいルール]を選択します。
「新しい書式ルール」ダイアログボックスで、「ルールの種類を選択してください」の中から、「数式を使用して、書式設定するセルを決定」を選択し、[ルールの内容を編集しいてください]で、「次の数式を満たす場合に値を書式設定」の中に、数式を)
「=and (weekday(date($B$1,$C$1,$A3),2)=6,or(INT(($a3-1)
/7)+1=2,INT(($a3-1)/7)+1=4))」と入力し、「書式」ボタンを押して「パターン」の「色」を選択し、「OK」ボタンを押しま す。
「条件付き書式の設定」ダイアログボックスで、「OK」ボタンを押します。



戻る
60点以上80点未満の人数を知りたい ときにCOUNTIFで求めるには
セル範囲A1:A50の点数が60以上80未満のセル数を返すには、
=countif(A1:A50,"<80")-countif(A1:A50,"<60")
と入力します。
数式の意味
セル範囲A1:A50の値が80未満のセル数を求め、その数から、セル範囲A1:A50の値が60未満のセル数を求て、減算します。


戻る
土日に稼働日がある場合に稼動日数で計算したい
添付ファイルを参照してください。
NETWORKDAYS関数を使います。
この関数を使うには、セットアッププログラムを実行して分析ツールを組み込み、[ツール]メニューの[アドイン]コマンドを使ってその分析ツールを登録す る必要があります。

土日に稼働日がある場合は、稼働日を加算します。
開始日付をセルB1
終了日付をセルB2
で指定しています。
「土日以外の休日」をセル範囲D2:D25に入力します。
セル範囲D2:D25を選択し、「挿入」「名前」「定義」で、「休日」と入力し、「休日」という名前を定義します。
「土日稼働日」をセル範囲E2:E25に入力します。
セル範囲E2:E25を選択し、「挿入」「名前」「定義」で、「稼働日」と入力し、「稼働日」という名前を定義します。

「配列数式」を使って稼働日のセル範囲を一度に検索しています。
セルB3には、土日と稼働日を加味した日数を返す数式
=NETWORKDAYS(B1,B2,休日)+SUM(IF(稼働日>=B1,IF(稼働日<B2,1)))
と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」
として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

数式の意味
開始日の開始日付のセルB1から終了日のセルB2の間の日付と休日からその期間内の稼動日の日数を返します。
その値に、次の計算結果を加算します。
稼働日が開始日付のセルB1以上かつ、稼働日が終了日未満の場合は1を返し、セル数を合計します。

NETWORKDAYSの説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「日付+時刻」NETWORDAYS
http://kiyopon.sakura.ne.jp/kansuu/date.html#networkdays
を参照してください。



戻る
A1セ ルの03,B1セルの3123,C1セルの4567を結合して数値0331234567を表示する
A1セルに03
B1セルに3123
C1セルに4567
と入力されているとします。
D1セルに
=A1&B1&C1
と入力します。
0331234567
が返ります。
このセルをコピーしてA1セルを選択し、「編集」「形式を選択して貼り付け」で「値」を選択し「OK」ボタンを押します。


戻る
計算後の数値が 10.50以下ならば答えは10 、10.51以上ならば答えは11を返す式
FLOOR関数を使います。
具体的には、
A1セルに数値10.50
が入力されているとします。
B1セルに
=FLOOR(A1+0.49,1)
と入力します。
10が返ります。
FLOOR関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「丸め」
FLOORとCEILING
http://kiyopon.sakura.ne.jp/kansuu/round.htm#floop
を参照してください。


戻る
二つの日付から、古い日付を選ぶ
 
D E F
4 2005/10/30 2005/11/02 =MIN(D4:E4)
5 2005/11/25 2005/03/03  2005/3/3
6 2011/03/05 2005/12/12  2005/12/12
7 2005/12/15 2005/12/01  2005/12/1
8 2005/12/31 2006/01/25  2005/12/31
日付は、日付シリアル値で認識されていれば、(1900年1月1日を1として、数値で認識されます)古い日付は、日付シリア ル値が小さい値ですから、MIN関数で小さい方を返せばいいですね。
セルF4には、

と入力します。
数式の意味
セルD4:E4の中で一番小さい数値を返します。



戻る
1つのセルに検索記号が複数入力 (A,B)されている対象セルの数値を合計する
添付ファイルを参照してください。
セルに入力する記号の数が2文字までの場合なら次のようになります。
「配列数式」を使います。
 
A B C
1
2
3 記号
4 10
5 B,C 1
6 B 3
7 C 5
8 A,C 6
9
10   記号 合計
11   A 16
12   B 4
13   C 12
セルB11には、
=SUMIF($B$4:$B$8,A11,$C$4:$C$8)+SUM(IF(LEN($B$4:$B$8)>1,IF(LEFT($B$4:$B$8,1)=A11,$C$4:$C$8)))+SUM(IF(LEN($B$4:$B$8)>1,IF(RIGHT($B$4:$B$8,1)=A11,$C$4:$C$8)))
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後数式は{   }でくくられます。
自分で{   }を入力してはいけません。
1番目の数式で、検索記号が1つだけが入力されているセルの数値を返します。
2番目の数式で、二つの記号の左側に検索記号が入力されているセルの数値を返します。
3番目の数式で、二つの記号の右側に検索記号が入力されているセルの数値を返します。

1つのセルに入力する記号の数が3つ以上の場合は別の方法を考える必要があります。

具体的には、
別のセルに記号を1文字ずつ取り出し、そのセル範囲に対してSUMIF関数を使用します。
下の例では、文字列をカンマなどで区切らなくても1文字ずつの記号に対応します。
セルE4には、1番左の文字列を1文字取り出します。
=LEFT(B4,1)
と入力します。
この式をしたのセル範囲に貼り付けます。

セルF4には、2番目の文字列を1文字取り出します。
=MID(B4,2,1)
と入力します。
この式をしたのセル範囲に貼り付けます。

セルG4には、3番目の文字列を1文字取り出します。
=MID(B4,3,1)
と入力します。
この式をしたのセル範囲に貼り付けます。

 
E F G
1      
2       
3 1番左 2番目 3番目
4 A
5 B , C
6 B
7 C
8 A , C
合計を返すセルに
=SUMIF($E$4:$G$8,A17,$C$4:$C$8)
と入力します。
この式をしたのセル範囲に貼り付けます。
 
A B
16 記号 合計
17 A 16
18 B 4
19 C 5


戻る
式で返した""と空白の違いについて
""長さゼロの文字列です。これを参照すると文字列となり、数値の0ではありません。
したがって計算式の参照値とすると#VALUEエラーとなります。
""の替わりに、0とすれば計算できる状態となります。
この場合に、セルに0を表示しないようにするには、セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの 「表示形式」の「分類」で「ユーザー定義」を選択し、「種類」欄に「G/標準;G/標準;」と入力し「OK」ボタンを押します。

セルに何も入力してない状態は、これを参照すると数値の0です。



戻る
指定した日付がその年の何日目になるかを返す
A1セルに日付を入力します。
経過日を返すセルに
=IF(A1="","",DATEDIF(DATE(YEAR(A1),1,1),A1,"d")+1)
と入力します。
DATE関数でA1セルに入力した年の、1月1日の日付を返して基準日にしています。
それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「日付+時刻」
DATE
http://kiyopon.sakura.ne.jp/kansuu/date.html#date
DATEDIF
http://kiyopon.sakura.ne.jp/kansuu/date.html#dateif
を参照してください。


戻る
毎月の料金の1ヶ月に満たない場合は日割り計算
 
A B C D E F G K L M N O
1    
2 入所日 退所日 月額単価 月別内訳
3 4月 5月 6月 7月 11月 12月 1月 2月 3月
4 H18.6.20 H18.12.10 5,000 0 0 1,666 5,000 5,000 1,612 0 0 0
添付ファイルを参照してください。

セルD3には、日付文字列で、2006/4/1と入力し、セルを選択し、「書式」「セル」を選択し「セルの書式設定」ダイアログ ボックスの「表示形式」タグの「分類」で「ユーザー定義」を選択し「m"月"」と入力し「OK」ボタンを押します。

セルE3には、
=DATE(YEAR(E4),MONTH(E4)+1,1)
と入力し、セルを選択し、「書式」「セル」を選択し「セルの書式設定」ダイアログボックスの「表示形式」タグの「分類」で「ユーザー定 義」を選択し「m"月"」と入力し「OK」ボタンを押します。
このセルをコピーして、右のセル範囲F3:O3まで貼り付けけます。

セルD4には、
=IF(AND($A4="",OR($B4="",$B4<D$3)),0,IF(AND($A4>0,$B4="",D$3> $A4),$C4,ROUNDDOWN(IF(AND($A4<D$3,DATE(YEAR($B4),MONTH($B4),1)>D3), 1,IF(MONTH($A4)=MONTH(D$3),((DATE(YEAR(D3),MONTH(D3)+1,1)-1-$A$4)/((DATE(YEAR (D3),MONTH(D3)+1,1))-D3)),IF(MONTH($B4)=MONTH(D$3),(($B4-D3+1)/((DATE(YEAR (D3),MONTH(D3)+1,1))-D3)),0)))*$C$4,0)))と入力します。
このセルをコピーして、右のセル範囲セルE4:O4まで貼り付けます。



戻る
データの中から該当しないデータを抽出
 
  A B C D
1 数 字 発 見番号 未 発見番号    
2 1 0 5 1
3 2 0 8 2
4 3 0 13 3
5 4 0 17 4
6 5 1 26 6
7 6 0 25 7
8 7 0 19 9
9 8 1   10
10 9 0   11
11 10 0   12
12 11 0   14
13 12 0   15
14 13 1   16
15 14 0   18
16 15 0   20
17 16 0   21
18 17 1   22
19 18 0   23
20 19 1   24
21 20 0   27
22 21 0   28
23 22 0   29
24 23 0   30
25 24 0    
26 25 1    
27 26 1    
28 27 0    
29 28 0    
30 29 0    
31 30 0    
配列数式を使います。
まず、B列を挿入し、A列の値が発見番号のセル範囲$C$2:$C$8に該当しない場合は0を返します。
=COUNTIF($C$2:$C$8,A2)
と入力します。
このセルをコピーして下のセル範囲B31まで貼り付けます。

セルD2には、
=IF(COUNTIF($B$2:$B$31,0)<ROW()-1,"",INDIRECT("A"&SMALL(IF($B$2:$B$31=0,ROW($A$2:$A$31)),ROW()-1),TRUE))
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後数式は{   }でくくられます。
自分で{   }を入力してはいけません。
数式の意味
もし、セル範囲B2:B31の値がゼロのセル数が、数式入力セルの行番号より小さい場合は、何も返しません。
文字列"A"と、セル範囲B2:B31の値が0の場合、該当するセル範囲の行番号で、数式入力セルの行番号-1番目に小さい値を返し、文 字列結合関数で結合し、"A1"形式のセル参照式とします。



戻る
A2に『山田株式会社』と入力したときに C3に『山田』を返す
セルA2には、文字列
山田株式会社
が入力されています。
セルC2には、文字列"株"の文字位置を検索してその左までの文字を返します。
=LEFT(A2,FIND("株",A2)-1)
と入力します。

それぞれの関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」
LEFT
http://kiyopon.sakura.ne.jp/kansuu/val.html#left
FIND
http://kiyopon.sakura.ne.jp/kansuu/val.html#find
を参照してください。



戻る
数値を0.05毎に切り上げて丸めたい
CEILING関数を使います。
具体的には、
A1セルにはすうち
1.11
が入力されているとします。
B1セルに
=CEILING(A1,0.05)
と入力します。

CEILING関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「丸め」FLOORとCEILING
http://kiyopon.sakura.ne.jp/kansuu/round.htm#floop
を参照してください。



戻る
計算値を小数点以下3桁を表示させたい
小数点以下2桁まで表示するには
=TEXT(SUM(A1:B2),"0.00")
と入力します。

小数点以下3桁まで表示するには
=TEXT(A1*B2,"0.000")
と入力します。
表示されている数値は文字列ですが、その値を参照して計算することができます

文字列では表示が左寄せになりますので、数値のように右寄せにすると良いでし
ょう。

TEXT関数についての説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」TEXT
http://kiyopon.sakura.ne.jp/kansuu/val.html#text
を参照してください。



戻る
countifの使用方法で検索条件が2 個以上の時の計算方法
同じ質問が「データベース」「2001/9/28」
複数の検索条件に一致するセルの値を合計する方法、個数を数える方法(配列数式)」にあります。


戻る
Sheet2のデータの行の空きをなくし てSheet1に返す
参考になる質問が「計算式・関数」「2004/5/3」
残業時間のある(条件に合致する)データ行のみを空白無く抽出する」にあります。

添付ファイルを参照してください。

セルA1に
=IF(ROW()>COUNTA(Sheet2!$A$1:$A$8),"",INDIRECT("Sheet2!A"&SMALL(IF(Sheet2!$A$1:$A$8<>0,ROW(Sheet2!$A$1:$A$8)),ROW()),TRUE))
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として入力します。
確定後数式は、{}でくくられます。
自分で{}を入力してはいけません。
数式の意味
シートSheet2のセル範囲$A$1:$A$8の空白セル以外のセル数(この場合5)が、数式入力セルの行番号(この場合1)より小さ い場合は何も返しません。
文字列"Sheet2!A"とシートSheet2のセル範囲$A$1:$A$8の値が0以外の場合、該当のシートSheet2のセル範囲 $A$1:$A$8の行番号の、数式入力セルの行番号(この場合1)番目に小さい行番号を返し、文字列結合関数&で結合し、"A1"形式のセル参 照式を返します。(この場合Sheet2!A1)
このセルをコピーして下のセル範囲に貼り付けます。

セルB1には、
=IF(ROW()>COUNTA(Sheet2!$A$1:$A$8),"",INDIRECT("Sheet2!A"&SMALL(IF(Sheet2!$A$1:$A$8<>0,ROW(Sheet2!$A$1:$A$8)),ROW()),TRUE))
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として入力します。
確定後数式は、{}でくくられます。
自分で{}を入力してはいけません。
このセルをコピーして下のセル範囲に貼り付けます。



戻る
同じレイアウトの各シートの統合
添付ファイル参照してください。
「統合元範囲」では、統合集計する表の行見出しと列見出しを含めたセル範囲を指定します。
シート「Sheet2」のセルA2を選択し、「データ」「統合」を選択し、「集計の方法」には、「合計」を選択し、「統合元範囲」のテキ ストボックスを選択し、シート「Sheet1」の(行列見出しを含んで)セル範囲A2:D5を選択し、「追加」ボタンを押します。
同様に、「統合元範囲」のテキストボックスを選択し、シート「Sheet1(2)」の(行列見出しを含んで)セル範囲A2:D5を選択 し、「追加」ボタンを押します。
「統合の基準」の「上端行」「左端列」のチェツクを入れ、「OK」ボタンを押します。
「統合もとデータとリンクする」のチェックを入れると統合集計するデータの表を変更した時は、自動的にアウトラインが設定されます。そし て、統合集計する表のデータを参照する数式と、それらを合計するSUM関数が出力されます。2
列目には、統合集計する表があるファイル名が出力されます。


戻る
セ ルに1200000と入力すると1,200千円と表示で、96523と入力すると96千円と3桁以下は切り捨て表示
 
ROUNDDOWN関数で切り捨てします。
具体的には、A1セルに96523と入力してあるとします。
B1セルに
=ROUNDDOWN(A1,-3)
と入力します。
96000
が返ります。
1000の桁までで表示するには、セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分 類」で「ユーザー定義」を選択し、「種類」欄に「#,"千円"」と入力し、「OK」ボタンを押します。
96千円と表示されます。
B1セルの値は、数式バーに表示されている
96000
です。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ROUNDDOWN関数の説明は、関数の使い方説明
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「丸め」ROUNDDOWN
http://kiyopon.sakura.ne.jp/kansuu/round.htm#rounddown
を参照してください。

戻る
全角文字列 で入力した「平成17年 3月 9日」を「H17.3.9」に変換するには

SUBSTITUTE関数で、スペースを削除します。
DATEVALUE関数で、日付文字列を日付シリアル値にします。
A1セルに、文字列で
平成17年 3月 9日
と入力してあるとします。
B1セルに、
=DATEVALUE(SUBSTITUTE(SUBSTITUTE(A1," ","")," ",""))
と入力します。
日付シリアル値として、返りますので、セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の 「分類」で「日付」を選択し、「種類」欄で「H13.3.14」を選択し、「OK」ボタンを押します。
SUBSTITUTE関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」のSUBSTITUTE
http://kiyopon.sakura.ne.jp/kansuu/val.html#substitute
「日付+時刻」DATEVALUE
http://kiyopon.sakura.ne.jp/kansuu/date.html#datevalue
を参照してください。


戻る
文字入力で、1.5(半角も あり)と入力したら1:30となるようにしたい
A1セルに1.5と文字列で入力したとします。
B1セルに、
=A1/24
セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で「時刻」を選択し、「種類」 欄で「13:30」を選択し「OK」ボタンを押します。
もし、全角で1:30と表示したい場合は、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で「ユーザー定義」を選択し、 「種類」欄に「[DBNum3]h:mm」と入力し「OK」ボタンを押します。


戻る
指定した月の指定した「曜日」に対応する 「日」を表示させる
参考になる質問が「質問と回答」の「計算式・関数」「2005/6/29」
日付に応じたその週の始まり(月曜日)の日付を表示するには」にあります。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
その内容
A1セルに日付が
2005/6/28
のように入力してあるとします。
B1セルにその週の月曜日を返すには、
=A1-WEEKDAY(A1,3)
と入力します。
日曜日を返すには、
=A1-WEEKDAY(A1,2)
と入力します。
WEEKDAY関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「日付+時刻」WEEKDAY
http://kiyopon.sakura.ne.jp/kansuu/date.html#weekday
を参照してください。
 
A B C D E F
1 11/1 1
2 7 14 21 28
セルA1に対象の月の初日を日付シリアル値で
H17/11/1
のように入力します。
その月の月始めの土曜日を返すのは、
B1セルに曜日を指定する数値
1 (月曜) 〜 7 (日曜) の範囲の整数
を入力します。

セルB2に
=A1+$B$1-WEEKDAY(A1,2)+IF(WEEKDAY(A1,2)>$B$1,7,0)
と入力します。
数式の意味
A1セルの値+セルB1の数値-セルA1の曜日に対する数値(1 (月曜) 〜 7 (日曜) の範囲の整数)+もしA1セルの曜日に対数留守うちがセルB1の数値より大きい場合は、7を加算します。

この日付シリアル値を日付表示にするには、セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表 示形式」の「分類」で「ユーザー定義」を選択し、「種類」欄に「d」と入力し、「OK」ボタンを押します。

WEEKDAY(日付,2)は 1 (月曜) 〜 7 (日曜) の範囲の整数 を返します。

月曜日を返す場合は、B1セルに1
火曜日 2
水曜日 3
木曜日 4
金曜日 5
土曜日 6
日曜日 7
と入力します。

セルC2には、次週の日付を返します。
=B2+7
と入力します。
このセルをコピーして、右のセルに貼り付けます。

セルF2には、次の週の日付が次の月の場合には、日付を表示しないように、
=IF(MONTH(E2+7)<>MONTH(B2),"",E2+7)
と入力します。



戻る
数式を10行毎にコピーしても参照セルを1行毎 にしたい
INDIRECT関数とROW関数を使います。
セルA1に、セルC1から1行毎のセルの形式の
=INDIRECT("C"&INT(ROW()-1/10)+1,TRUE)
と入力します。
数式の意味
文字列"C"と(数式入力セルの行番号-1)÷10の整数値+1(この場合数式入力セルは、1ですから1-1+1=1)を文字列結合関数 (&)で結合し、「A1」形式のセル参照式と
します。(この場合=C1となります。)
この式をセル11に貼り付けた場合
整数値(数式入力セルの行番号÷10)+1は、INT((10-1)÷10)+1=INT(10/10)+1=1+1
で、C2セルを参照する式となります。
セル21に貼り付けた場合は、
INT((21-1)÷10)+1=INT(20/10)+1=2+1=3、C3セルを参照する式となります。
この数式では、数式入力セルが10の場合は、
INT((10-1)/10)+1=0+1=1となり、セルC1への参照式となます。
最初の数式をn行目以降のセルに記述して、1行目のセルを参照する場合は、ROW()から数式入力セル(n行)を引いた数式とします。
例えば、5行目に入力する場合、
=INDIRECT("C"&INT((ROW()-5)/10)+1

それぞれの関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「検索+行列」
INDIRECT
http://kiyopon.sakura.ne.jp/kansuu/address.html#indirect
ROW
http://kiyopon.sakura.ne.jp/kansuu/address.html#row




戻る
20051104  →  11/04と変換したい
MID関数を使います。

セルA1に数値が
20051104
と入力してあるとします。
文字列の11/04として表示させるには、
=MID(A1,5,2)&"/"&MID(A1,7,2)
と入力します。
数式の意味
セルA1の左から5文字目から、2文字取りだし、文字列結合関数(&)で、文字"/"と結合し、さらにセルA1の左から7文字目 から、2文字取りだして、文字列結合関数(&)
で結合します。
文字列としての"11/04"が返ります。
もし、これを全角の"11/04"とする場合は、
=JIS(MID(A1,5,2)&"/"&MID(A1,7,2))
とします。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
また、別の方法として
日付として2005/11/04と認識させて、表示のみ11/04とするには、次のようになります。
=DATE(MID(A1,1,4),MID(A1,5,2),MID(A1,7,2))
と入力し、セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で「ユーザー定義」 を選択し、「種類」欄に「mm/dd」と入力し「OK」ボタンを押します。
数式の意味
セルA1の左から1文字目から4文字を「年」、セルA1の左から5文字目から2文字を「月」、セルA1の左から7文字目から2文字を 「日」として日付シリアル値を返します。
もし、これを全角で表示したい場合は、セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の 「分類」で「ユーザー定義」を選択し、「種類」欄に「[dbnum3]mm/dd」と入力し「OK」ボタンを押します。

この場合は、セルの値は、日付シリアル値の
38600
として認識されます。

それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」
MID
http://kiyopon.sakura.ne.jp/kansuu/val.html#mid
「日付+時刻」
DATE
http://kiyopon.sakura.ne.jp/kansuu/date.html#date




戻る
'20051001132612875 を 2005/10/01 13:26 と変換する
セルA4に
'20051001132612875
と入力してあるとします。

セルに
=MID(A4,2,4)&"/"&MID(A4,6,2)&"/"&MID(A4,8,2)&"
"&MID(A4,10,2)&":"&MID(A4,12,2)
と入力します。
文字列で
2005/10/01 13:26
が返ります。

セルに
=DATEVALUE(MID(A4,2,4)&"/"&MID(A4,6,2)&"/"&MID(A4,8,2))+TIMEVALUE(MID(A4,10,2)&":"&MID(A4,12,2))
と入力します。
日付シリアル値で
2005/10/1 13:26
が返ります。
これを日付と時刻の表示形式にするために、セルを選択し、「書式」「セル」を選択し「セルの書式設定」ダイアログボックスの「表示形式」 タグの「分類」で「ユーザー定義」を選択し、「種類」欄に「yyyy/mm/dd h:mm」と入力し、「OK」ボタンを押します。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」のMID
http://kiyopon.sakura.ne.jp/kansuu/val.html#mid
「日付+時刻」のDATEVALUE
http://kiyopon.sakura.ne.jp/kansuu/date.html#datevalue
TIMEVALUE
http://kiyopon.sakura.ne.jp/kansuu/date.html#timevalue
を参照して下さい。



戻る
0以上5未満の数値を◎、そうでなければ×を返し たい
複数の条件の場合は、AND関数を使います。
具体的には、
=IF(AND(A1>=0,A1<5),"◎","×")
となります。
数式の意味
もしA1セルの値が0以上かつ5未満の場合は、"◎"を返し、それ以外は"×"を返します。

また、セルの値が0あるいは何も入力してない場合は、何も返さないようにする場合は、次のようになります。
=IF(A1=0,"",IF(AND(A1>=0,A1<5),"◎","×"))

それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「論理関数」
IF
http://kiyopon.sakura.ne.jp/kansuu/if.html#if
AND
http://kiyopon.sakura.ne.jp/kansuu/if.html#and
を参照してください。



戻る
年始からの n週を指定し、そのn週に該当する、特定の曜日(たとえば月曜日)の日付を求める
曜日の検出に、WEEKDAY関数を使います。
 
A B C
1 2005/1/1(土)  44 2
2  2005/11/7(月)
セルB1には、年始から第何周かを指定する数値を入力します。(この場合44週目)
セルC1には、日曜日を1から土曜日が7とした、特定の曜日を数値で指定します。
(この場合月曜日で、2)
セルA2には、
=WEEKDAY(A1+B1*7)-(7-C1)+A1+(B1-1)*7
と入力します。
2005/10/31(月)
が返ります。
WEEKDAY関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「日付+時刻」のWEEKDAY
http://kiyopon.sakura.ne.jp/kansuu/date.html#weekday
を参照してください。


戻る
指定したコードNOだけを集計したい
SUMIF関数を使います。
 
A B C
1 店名  コード 金額
2 A店 1 100
3 B店 3 150
4 C店 1 200
5 D店 2 250
6
7 1 300
8 2 250
セルB7には、検索条件としてのコード
1
と入力します。

セルC7には、
=SUMIF($B$2:$B$5,A7,$C$2:$C$5)
と入力します。
SUMIF関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「数学+三角」のSUMIF
http://kiyopon.sakura.ne.jp/kansuu/abs.html#sumif
を参照してください。



戻る
当日が年始から第何週になるかを求めたい
WEEKNUM 関数を使います。
具体的には、A1セルに日付が
2005/10/23
と入力されているとします。
B1セルに
=WEEKNUM(A1)
と入力します。

まお、WEEKNUM関数を使用するには「ツール」「アドイン」の「分析ツール」を登録する必要があります。
WEEKNUM関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「日付+時刻」のWEEKNUM
http://kiyopon.sakura.ne.jp/kansuu/date.html#WEEKNUM




戻る
合計の数値が、ある指定の数 値以上であれば○を返し、未満であれば×を返す
IF関数を使います。
具体的には、セルA1の値に対して100以上であれば、○を返し、未満であれば、×を返すとします。
=IF(A1>=100,"○","×")
IF関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「論理関数」IF
http://kiyopon.sakura.ne.jp/kansuu/if.html#if
を参照してください。


戻る
セルの条件に合った数字を合計する
SUMIF関数を使います。
 
A B
1 1 1,000
2 1 1,200
3 2 1,550
4 1 850
5 1 600
6 2 1,100
7 1 1,800
8 1の合計 5,450
9 2の合計 2,650
セルB8には、A列が1の場合のB列の値を合計します。
=SUMIF($A$1:$A$7,1,$B$1:$B$7)
と入力します。

セルB8には、A列が1の場合のB列の値を合計します。
=SUMIF($A$1:$A$7,2,$B$1:$B$7)
と入力します。
SUMIF関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「数学+三角」のSUMIF
http://kiyopon.sakura.ne.jp/kansuu/abs.html#sumif
を参照してください。



戻る
整数 5〜9までを5に0〜4までを0に
FLOOR関数を使います。
具体的には、
A1セルに数値が
1457
と入力してあるとします。
セルB1に
=FLOOR(A1,5)
と入力します。
FLOOR関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
のFLOOR
http://kiyopon.sakura.ne.jp/kansuu/round.htm#floop
を参照して下さい。


戻る
誕生日 から起算して、本日が(または指定した日付から)何年、何ヶ月、何日なのかを表示させたい
DATEDIF関数を使います。
DITEDIF関数は「関数の挿入」ダイアログボックスには表示されませんが、関数を入力した後で「関数の挿入ボタン」「fx」や「数式 の編集」「=」をクリックすると「関数の引数」ダイアログボックスで引数を編集することができます。
具体的には、A1セルに誕生日が
1980/4/25
と入力してあるとします。
本日までの満年数
=DATEDIF(A1,TODAY(),"Y")
25
が返ります。

本日までの1年未満の月数
=DATEDIF(A1,TODAY(),"YM")
5
が返ります。

本日までの1ヵ月未満の日数
=DATEDIF(A1,TODAY(),"MD")
19
が返ります。
DATEDIF関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「日付+時刻」
のDATEDIF
http://kiyopon.sakura.ne.jp/kansuu/date.html#dateif
TODAY関数の説明は
http://kiyopon.sakura.ne.jp/kansuu/date.html#today
を参照してください。



戻る
10進数で入力した数字を16進数で表示させる方法
エンジニアリング関数のDEC2HEX関数を使います。
この関数を使うには、セットアッププログラムを実行して分析ツールを組み込み、[ツール]メニューの[アドイン]コマンドを使ってその {分析ツール}を登録する必要があります。

具体的には、セルA1に10進数の
100
が入力してあるとします。
セルB1に
DEX2HEX(A1)
と入力します。
DEX2HEX関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「エンジニアリング関数」のDEX2HEX
http://kiyopon.sakura.ne.jp/kansuu/eng.htm#DEC2HEX
を参照してください。



戻る
源泉徴収税額表から納める金額を出したい
添付ファイルを参照してください。
VLOOKUP関数を使います。
 
A B C
1 収入 165,500 5560
2
3 以上 未満 支払う税金
4 165,000 167,000  5,560
5 167,000 169,000 5,670
6 169,000 171,000 5,790
7 171,000 173,000 5,900
8 173,000 175,000 6,010
セルB1には、検索値として収入を入力します。
セルC1には、
=VLOOKUP(B1,$A$4:$C$8,3,TRUE)
と入力します。
数式の意味
検索値B1が、セル範囲A4:B8の左端列(この場合A列)の該当する場合その3列目(この場合C列)の値を返します。
VLOOKUP関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「検索+行列」VLOOKUP
http://kiyopon.sakura.ne.jp/kansuu/address.html#vlookup
を参照してください。


戻る
12月31日で65歳以上の場合 は、免除、それ以外は徴収と表示したい
今年の65年前の12月31を返します。
=DATEVALUE(YEAR(TODAY())-65&"/12/31")
数式の意味
今日の日付の年-65の12月31日の日付シリアル値を返します。
セルA1には生年月日を
S10/10/14
のように入力します。
セルA2には、
=IF(A1="","",IF(A1<=DATEVALUE(YEAR(TODAY())-65&"/12/31")," 免除","徴収"))
と入力します。
数式の意味
もしセルA1になも入力してない場合は、何も表示しません。
セルA1の値がの65年前の12月31以下であれば、"免除"を、それ以外は"徴収"をかえします。

それぞれの関数の説明は
「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「日付+時刻」のDATEVALUE
http://kiyopon.sakura.ne.jp/kansuu/date.html#datevalue
YEAR
http://kiyopon.sakura.ne.jp/kansuu/date.html#year
を参照してください。



戻る
時刻[5:15]を秒に変換する
二つの方法があります。
入力セルの時刻[5:15]を秒[1890]表示にする(値は5:15のまま)
A1セルに
5:15
と入力します。
A1セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボ
ックスの「表示形式」の「分類」で「ユーザー定義」を選択し、「種類」欄に[s]
と入力し「OK」ボタンを押します。
カギ括弧"[","]"を含んで入力してください。
セルに[1890]が表示されます。
この場合は、セルの値は
5:15のままです。

同様に分表示とするには、「種類」欄に[m]と入力します。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
別のセルに数値としての秒を取り出す
B1セルに
=A1*24*60*60
と入力します。
この場合B1セルの値は、数値の
[18900]
です。

同様に分表示とするには、
=A1*24*60
と入力します。
 



戻る
文字列でスペース以降の文字数を指定して取り出す には
 
スペースの文字位置を取得するには、FIND関数を使います。

A1セルの文字の半角スペースの文字位置は、
=FIND(" ",A1)

A1セルの文字の全角スペースの文字位置は、
=FIND(" ",A1)

全角でも半角でも対応するには、次のようにします。
=IF(ISERROR(FIND(" ",A1)),0,FIND(" ",A1))+IF(ISERROR(FIND(" ",A1)),0,FIND(" ",A1))
となります。

指定文字数を取り出すには、MID関数を使います。
次の例では、A1セルの3文字目から2文字取り出す例です。
=MID(A1,3,2)

先ほどのスペース位置から3文字取り出すには、
=MID(A1,IF(ISERROR(FIND(" ",A1)),0,FIND(" ",A1))+IF(ISERROR(FIND(" ",A1)),0,FIND(" ",A1)),3)
となります。
それぞれの関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」
FIND
http://kiyopon.sakura.ne.jp/kansuu/val.html#find
MID
http://kiyopon.sakura.ne.jp/kansuu/val.html#mid
を参照してください。



戻る
野球の防御率の計算方法
計算式は次のようになります。
 
A B C D
1 投球回 自責点 防御率
2 135 66 4.4
3 45 33 6.6
4 87 2/3 66 6.78
投球回が途中でも計算式は同じです。
セルA4には
87
と入力します。
セルB4には
0 2/3
と、分数入力形式で入力します。
整数部がないので、整数部を0で入力し、間に半角スペースを入れて
0 2/3
と入力します。

セルD4には、防御率を計算する式
=C4*9/(A4+B4)
と入力します。
セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で「数値」を選択し、「小数点 以下の桁数」で、2と入力し「OK」ボタンを押します。
この式をコピーして、上のセルD2:D3に貼り付けます。



戻る
2000/4/10 の日付を[平成][12][4][10]と4個のセルに分割したい
二つの方法があります。
セルA1に日付入力
2000/4/10
と入力されているとします。
セルB1,C1,D1,E1にそれぞれ平成、12、4、10を表示するものとします。

データはそのままで、「セルの書式設定」により、表示のみを別々のセルに分ける方法
セルB1には、
=$A$1
セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で「ユーザー定義」を選択し、 「種類」欄に「"ggg"」と入力し「OK」ボタンを押します。

セルC1には、
=$A$1
セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で「ユーザー定義」を選択し、 「種類」欄に「"e"」と入力し「OK」ボタンを押します。

セルD1には、
=$A$1
セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で「ユーザー定義」を選択し、 「種類」欄に「"m"」と入力し「OK」ボタンを押します。

セルE1には、
=$A$1
と入力します。
セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で「ユーザー定義」を選択し、 「種類」欄に「"d"」と入力し「OK」ボタンを押します。

データも表示された内容の平成、12、4、10とする場合。
数式入力します。
セルB1には、
=TEXT($A$1,"ggg")
と入力します。

セルC1には、
=VALUE(TEXT($A$1,"e"))
と入力します。

セルD1には、
=VALUE(TEXT($A$1,"m"))
と入力します。

セルE1には、
=VALUE(TEXT($A$1,"d"))
と入力します。



戻る
分数の入力と計算方 法、整数部分と分数部分が別々のセルに入力してある合計の計算
計算式は次のようになります。
整数部分と分数部分が別々のセルに入力してあるとします。
下の例では、整数部分がA列、分数部分がB列に入力してあります。
 
A B
1 投球回
2 135
3 45
4 87 2/3
5 144
6 190
7 164 1/3
8 205 2/3
9 147
10 1118 2/3
整数部分のない分数の数値を入力するには、
0 2/3
のように整数部分に、ゼロ
続いて半角スペース
続いて分数を入力します。

セルA10には、
=SUM(A2:A9)+INT(SUM(B2:B9))
と入力します。
数式の意味
セル範囲A2:A9の合計とセル範囲B2:B9の合計の整数部分を加算します。

セルB10には、
=SUM(B2:B9)-INT(SUM(B2:B9))
と入力します。
数式の意味
セル範囲B2:B9の合計からセル範囲B2:B9の合計の整数部分を減算します。

INT関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「数学+三角」のINT
http://kiyopon.sakura.ne.jp/kansuu/abs.html#INT
を参照してください。



戻る
ゴルフ成績表で、メンバーが増 減しても自動で順位付けできるようにしたい
添付ファイルを参照してください。


26人(30行目)までは自動で計算できるようにしました。
OFFSET関数を使い、参加者人数によってのランク関数の参照先を自動変更します。
セルG4には参加者人数を計算します。
=COUNTA($A$5:$A$30)
この場合、15が返ります。
数式の意味
セル範囲A5:A30のうち空白以外のセル数を返します。
A列の5行目から30行目までに何か(スペースでも)入力されれば、参加者人数が計算されます。

セルG5には、同点の場合は年齢が多い方が点数が良くなるように
=IF(F5="","",F5-(NOW()-I5)/100000)
と入力します。

セルH5には、
=IF(A5="","",RANK(G5,OFFSET($G$5,0,0,$G$4,1),1))
と入力します。
数式の意味
もしA5セルに何も入力していなければ、何も返しません。
セルG5の数値と、セル$G$5からセル$G$4の行数オフセットしたセル範囲の値(この場合セル$G$5から15行でセル範囲$G $5:$G$19が返ります)に対する順位を返します。

A列に名前を入力したら表の罫線を自動で引くようにしました。
セル範囲A5:K30を選択し、「書式」「条件付き書式」を選択し、「条件付き書式の設定」ダイアログボックスで、「条件1」で、「数式 が」を選択し、「=$A5<>""」と入力し「書式」ボタンを押して「罫線」宅を開き「外枠」を選択し、「OK」ボタンを押します。

また、そのほかの計算式も、A列のデータが入力してない場合何も表示しないようにしています。
OFFSET関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「検索+行列」
http://kiyopon.sakura.ne.jp/kansuu/address.html#offset
を参照してください。




=Sheet1! $C$10 をオートフィルで=Sheet2!$C$10、=Sheet3!$C$10…とシート名を自動で変化させたい
INDIRECT関数を使います。
具体的には、セルA1に入力した式
=Sheet1!$C$10
を下のセルA2に
=Sheet2!$C$10
としてオートフィルする場合

セルA1に
=INDIRECT("Sheet"&ROW()&"!$C$10",TRUE)
と入力します。
数式の意味
文字列"Sheet"と数式を入力した行番号(この場合A1セルですから1行目)と、文字列"!$C$10"を文字列結合関数& で結合し、A1形式のセル参照式とします。("Sheet1!$C$10"となります。)

このセルをコピーして下のセル範囲に貼り付けます。

最初に式を入力するセルが3行目で、参照式のシートがSheet1の場合は
=INDIRECT("Sheet"&ROW()-2&"!$C$10",TRUE)
とします。

列に数式をドラッグする場合は、次のようになります。
セルA1に数式を入力する場合
=INDIRECT("Sheet"&COLUMN()&"!$C$10",TRUE)
数式の意味
文字列"Sheet"と数式を入力した列番号(この場合A1セルですから1列目)と、文字列"!$C$10"を文字列結合関数& で結合し、A1形式のセル参照式とします。("Sheet1!$C$10"となります。)

もしこの式をC1に入力した場合は3列目となりますので
=INDIRECT("Sheet"&COLUMN()-2&"!$C$10",TRUE)
とします。

それぞれの数式の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「検索+行列」
INDIRECT
http://kiyopon.sakura.ne.jp/kansuu/address.html#indirect
ROW
http://kiyopon.sakura.ne.jp/kansuu/address.html#row
COLUMN
http://kiyopon.sakura.ne.jp/kansuu/address.html#column
を参照してください。



戻る
百 の桁を800円揃えにしたい(32,900円を、32,800円に、32,700円を、31,800円に)
セルB6に数値が
32,900または32,700
と入力してあるとします。
セルC6には、

=VALUE(LEFT(B6-IF(VALUE(RIGHT(B6,3))<800,1000,0),LEN(B6)-3)&"800")

数式の意味
セルB6の文字列の右から3文字とり出し、その値が800より大きい場合は1000をセルB6から引いて、その値の左から、セルB6の桁 数-3(この場合5桁の数値ですから5-3で、2)文字取り出し(この場合"32"となります)、文字列列結合関数&(アンパサンド)で、文字列 "800"と結合して(この場合"35800"となります)、VALUE関数で数値とします。

それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」の
LEN
http://kiyopon.sakura.ne.jp/kansuu/val.html#len
LEFT
http://kiyopon.sakura.ne.jp/kansuu/val.html#left
VALUE
http://kiyopon.sakura.ne.jp/kansuu/val.html#value
RIGHT
http://kiyopon.sakura.ne.jp/kansuu/val.html#right
CONCATENATE
     &
http://kiyopon.sakura.ne.jp/kansuu/val.html#concatenate
を参照してください。



戻る
09000000000 という携帯電話の番号を090-0000-0000と変換したい
表示のみ090-0000-0000とするには、
090000000と入力したセルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」 で「ユーザー定義」を選択し、「表示形式」の「種類」欄に「0##-####-####」と入力し、「OK」ボタンを押します。
表示だけでなく、値としても090-0000-0000とする場合は、関数で文字列として取り出します。
LEFT関数、MID関数、RIGHT関数と、文字列結合関数&を使います。
セルA1に09000000000と入力してあるとします。
セルB1に、
=LEFT(A1,3)&"-"&MID(A1,4,4)&"-"&RIGHT(A1,4)
と入力します。
このセルを選択し、「編集」「コピー」して、「編集」「形式を選択して貼り付け」で、「値」にチェックを入れ「OK」ボタンを押します。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」の
LEFT
http://kiyopon.sakura.ne.jp/kansuu/val.html#left
MID
http://kiyopon.sakura.ne.jp/kansuu/val.html#mid
RIGHT
http://kiyopon.sakura.ne.jp/kansuu/val.html#right
CONCATENATE
     &
http://kiyopon.sakura.ne.jp/kansuu/val.html#concatenate
を参照してください。


戻る
+(プラス)の数字を−(マイナス)に 表示を一括して変える方法
関係のないセルに
-1
と入力します。
そのセルを選択して「コピー」します。
−(マイナス)にしたいセル範囲を選択します。
「編集」「形式を選択して貼り付け」を選択し、「演算」の「乗算」のボタンを押し、「OK」ボタン押します。


戻る
9650分を何時間何分にしたい
A1セルに
9650
と入力されているとします。
B1セルに
=A1/60/24
と入力します。
B1セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボ
ックスで、「表示形式」の「分類」で、「ユーザー定義」を選択し、「種類」欄
に「[h]時間m分」と入力し、「OK」ボタンを押します。
セルB1の値は、
160.8333333
のままですが、表示のみ
160時間50分
となります。


戻る
セルに入力した日付と時刻の データから日付のみを残して、時刻を削除したい
日付は、1900年1月1日を1として、1日が1です。
時刻は、1日が24時間で、小数点以下の数値となります。
したがって、日付のみを残したい場合は、小数点以下を削除すればいいです。
その場合は、INT関数で小数部分を切り取ってデータの整数値のみを取り出します。
具体的には、セルA1に
8/1 19:23:00
と入力してあるとします。
セルB1に日付のみを取り出すには、
=INT(A1)
と入力します。
INT関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「数学+三角」のINT
http://kiyopon.sakura.ne.jp/kansuu/abs.html#INT
を参照してください。


戻る
行の最後のセル番地を出すにはどうしたらよいですか
どのような目的でセル番地を返すのか不明ですので、的確な回答ができません。
CELL関数とINDIRECT関数とROW関数とIF関数とCOLUMN関数を組み合わせます。
注意:データの定義として空白もデータとして認識しますので、空白を入力したセルを返すこともあります。
具体的には、
セル範囲A1:A9999の最終データ入力セル番地("A1"形式)を、セルB1に返すとします。
=CELL("address",INDIRECT("R"&MAX(IF(A1:A9999<>"",ROW(A1:A9999)))&"C1",FALSE))
数式の意味
MAX(IF(A1:A9999<>"",ROW(A1:A9999))
セル範囲A1:A9999で、何も入力してないセル以外の行番号の最大値を返します。
(A100セルにデータが入力してある場合は、100が返ります。)

INDIRECT("R"&MAX(IF(A1:A9999<>"",ROW(A1:A9999)))&"C1",FALSE)
文字列"R"と、前の式で計算した行番号の最大値と、文字列"C1"とを文字列結合関数&(アンパサンド)で、結合して "R1C1"形式のセル参照式とします。
Rは行、Cは列を示します。
(セルA100へのセル参照式"=R100C1"から、セルA100の値が返ります。)

=CELL("address",INDIRECT("R"&MAX(IF(A1:A9999<>"",ROW(A1:A9999)))&"C1",FALSE))
対象セルのセル番地を返します。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
また、「エクセルで使えるソフト」
http://kiyopon.sakura.ne.jp/soft/index.htm
に、「下端データの検索」ユーザー定義関数
説明はこちら↓
http://kiyopon.sakura.ne.jp/soft/sita.htm
があります。
選択範囲のデータが入力されているもののうち、列の一番下端のデータを返します。
注意このソフトを使用する場合は、「アドインソフト使用上の注意」
http://kiyopon.sakura.ne.jp/soft/addin.html
を必ずお読みください。



戻る
入力した日付の翌月の月初めと翌月の月末の日付を 返す
セルA1に日付が
2005/7/3
あるいは
H17/7/3
のように日付入力形式で入力してあるとします。
セルB1に翌月の月初めの日「2005/8/1」を表示するには、
=DATE(YEAR(A1),MONTH(A1)+1,1)

セルC1に翌月の月末の日「2005/8/31」を表示するには、
=DATE(YEAR(A1),MONTH(A1)+2,0)
と入力します。

DATE関数、MONTH関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「日付+時刻」
DATE
http://kiyopon.sakura.ne.jp/kansuu/date.html#date
MONTH
http://kiyopon.sakura.ne.jp/kansuu/date.html#month
を参照してください。



戻る
日付に応じたその週の始まり(月曜日)の日 付を表示するには
A1セルに日付が
2005/6/28
のように入力してあるとします。
B1セルにその週の月曜日を返すには、
=A1-WEEKDAY(A1,3)
と入力します。
日曜日を返すには、
=A1-WEEKDAY(A1,2)
と入力します。
WEEKDAY関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「日付+時刻」WEEKDAY
http://kiyopon.sakura.ne.jp/kansuu/date.html#weekday
を参照してください。


戻る
日付から何年度と表示するにはどうしたらよい のでしょうか
A1セルに日付が
H16/4/1
と入力されているとします。
B1セルには、
=IF(MONTH(A1)<4,DATE(YEAR(A1)-1,MONTH(A1),DAY(A1)),A1)
と入力します。
数式の意味
もし、セルA1の月が4未満の場合は、A1セルの1年前の日付を、日付シリアル値で返します。
セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で「日付」を選択し「種類」欄 に「ge"年度"」と入力し、「OK」ボタンを押します。
H16年度
と、元号をアルファベット1字の表示で年度を表示します。

平成16年度
と表示するには、「種類」欄に「ggge"年度"」と入力し、「OK」ボタンを押します。

2004年度と表示するには、
「種類」欄に「yyyy"年度"」と入力し、「OK」ボタンを押します。
それぞれの関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「日付+時刻」
DATE
http://kiyopon.sakura.ne.jp/kansuu/date.html#date
MONTH
http://kiyopon.sakura.ne.jp/kansuu/date.html#month
YEAR
http://kiyopon.sakura.ne.jp/kansuu/date.html#year
DAY
http://kiyopon.sakura.ne.jp/kansuu/date.html#day



戻る
6/30 の1ヶ月後、2ヶ月後の日付を返す。ただし、2/29,2/30はないので3/1を返す
指定した月数後の日付を返すには、EDATE関数を使います。
この関数を利用するには、「ツール」「アドイン」で「分析ツール」を組み込む必要があります。

シート「sheet2」のセルC4には、セルC3の開始日からの指定月数後の日付を返します。
=EDATE($C$3,ROW()-3)+IF(DAY($C$3)<>DAY(EDATE($C$3,ROW()-3)),1,0)
と入力します。
数式の意味
EDATE($C$3,ROW()-3)
セルC3の日付の、数式入力セルの行番号-3(この場合4行目ですから4-3で、1)ヶ月後の日付を返し、(6/30の8ヶ月後は、 2/28が返ります。)
+IF(DAY($C$3)<>DAY(EDATE($C$3,ROW()-3)),1,0)
もし、その日付がセルC3の日付と違う場合は、1加算した日付(次の日で3/1)とします。



戻る
リストから条件に合致するデータ一覧を 別々のシートに自動で返す
「エクセルで使えるソフト」
http://kiyopon.sakura.ne.jp/soft/index.htm
に、私の作成した「拡張VLookUp」ユーザー定義関数
説明はこちら↓
http://kiyopon.sakura.ne.jp/soft/vlookupx.htm
があります。

n番目に検索された行の指定列のデータを返す拡張VLookUp関数です。
エクセルに組み込みのVLOOKUP関数は、指定した範囲の左端列で検索し、発見されたセル同じ行の指定した列に入力されてている値を返 す関数で、指定した列で最初に発見したデータしか返しませんが、この「拡張VLoopUp」関数は、n番目に見つかった行のデータを返します。
このソフトを利用する場合は、「アドインソフト使用上の注意」
http://kiyopon.sakura.ne.jp/soft/addin.html
を必ずお読みください。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
添付ファイルを参照してください。
(このファイルには、特別にアドインのマクロがコピーしてありますので、ファイルを開く時に「マクロの警告」メッセージがでる場合があり ますが、「マクロを有効にする」にして、開いてください。)

シート「三重県」のセルA4には、
=IF(COUNTIF(東海!$A$2:$A$9,$A$1)<ROW()-3,"",vlookupx($A$1,東海!$A $2:$C$9,ROW()-3,COLUMN()))
と入力します。

数式の意味
IF(COUNTIF(東海!$A$2:$A$9,$A$1)<ROW()-3,"",
もし、シート「東海」のセル範囲A2:A9(都市名)の値が、セルA1(この場合は、三重県)と一致するセルの数が、この数式の入力セル の行番号-3(この場合4行目ですから4-3で、1)より小さい場合は、何も返しません。

vlookupx($A$1,東海!$A$2:$C$9,ROW()-3,COLUMN())
セルA1の値と、シート「東海」のセル範囲A2:A9の値を検索して、一致する場合は、この数式の入力セルの行番号-3(この場合4行目 ですから4-3で、1)番目に見つかったデータの、この数式の入力セルの列番号(この場合1列目です)列目のデータを返します。

そのほかの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
「統計関数」のCOUNTIF
http://kiyopon.sakura.ne.jp/kansuu/abs.html#countif
「論理関数」のIF
http://kiyopon.sakura.ne.jp/kansuu/if.html#if
「検索+行列」のROW
http://kiyopon.sakura.ne.jp/kansuu/address.html#row
COLUMN
http://kiyopon.sakura.ne.jp/kansuu/address.html#column
を参照してください。



戻る
前後にスペースのある 「_12300-_」を「-12300」と変換したい
TRIM関数で文字列の前後のスペースを削除した後、文字列をVALUE関数で数値に変
換します。
具体的には、A3セルの文字列
" 12300- "
を変換する場合
=VALUE(((IF(RIGHT(TRIM(A3),1)="-",-LEFT(TRIM(A3),LEN(TRIM(A3))-1),TRIM(A3)))))
と入力します。


戻る
重さと地域から郵便料金を表示させたい
同じような質問が、「質問と回答」
の「データベース」「2002/6/8」
二次元のデータリストから縦の条件と横の条件に合致するデータを返す
にあります。
見本ファイル sqlist.xls  18kB  を参照下さい。
http://kiyopon.sakura.ne.jp/situmon/kaitou/sqlist.xls




戻る
数量によって単価が違う場合に、入 力した数に対するの合計金額の計算
添付ファイルを参照してください。
VLOOKUP関数を使います。
 
A B C
1 りんご 数量 合計
2 150 15,000
3 以上 未満 単価
4 81 200
5 81 101 160
6 101 131 130
7 131 200 100
セル範囲A4:C7に数量と単価のリストを入力します。
(セル範囲B列は必要ありませんがわかりやすくするために入力しています。)

セルB2に対象の数量を入力します。

セルC2には、
=VLOOKUP(B2,$A$4:$C$7,3)*B2
と入力します。

数式の意味
セルB2の値に該当する値をセル範囲A4:C7の左端列(この場合A列)から検索し、3列
目(この場合C列)の値を返し、単価のセルB2をかけ算します。
VLOOKUP関数についての説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「検索+行列」のVLOOKUP
http://kiyopon.sakura.ne.jp/kansuu/address.html#vlookup
を参照してください。



戻る
リスト範囲の中から最大値を返し、その行と 列の項目名を返す
添付ファイルを参照してください。
INDIRECT関数と「配列数式」を使います。
 
A B C D
1
2
3 1月 2月 3月
4 1時 12 41 45
5 2時 25 34 64
6 3時 15 70 24
7 4時 23 20 85
8 5時 24 10 35
9 最大値
10 85 4時 3月
セルA10には、セル範囲B4:D8の最大値を返します。
=MAX(B4:D8)
と入力します。

セルB10には、
=INDIRECT("R"&MIN(IF($B$4:$D$8=A10,ROW($B$4:$D$8)))&"C1",FALSE)
と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

数式の意味
文字列"R"と、セル範囲B4:D8が、セルA10と同じ場合、そのセル範囲A4:A8行番号の最小値を返し、文字列"C1"と結合し て、"R1C1"形式の数式とします。

セルC10には、
=INDIRECT("R3C"&MIN(IF($B$4:$D$8=A10,COLUMN($B$4:$D$8))),FALSE)
と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

数式の意味
文字列"R3C"と、セル範囲B4:D8が、セルA10と同じ場合、そのセル範囲A4:A8列番号の最小値を返し、結合して、 "R1C1"形式の数式とします。

それぞれの数式の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「検索+行列」
INDIRECT
http://kiyopon.sakura.ne.jp/kansuu/address.html#indirect
ROW
http://kiyopon.sakura.ne.jp/kansuu/address.html#row
COLUMN
http://kiyopon.sakura.ne.jp/kansuu/address.html#column
を参照してください。



戻る
小数点以下 0.50以下は切り捨 て 0.51以上は切り上げしたい
A1セルに数値が入力してあるとします。
B1セルに
=ROUND(A1-0.01,0)
あるいは
=FLOOR(A1+0.49,1)
と入力します。
それぞれの関数の説明は、「関数の使い方説明」
の「丸め」のROUND
http://kiyopon.sakura.ne.jp/kansuu/round.htm#round
FLOORとCEILING
http://kiyopon.sakura.ne.jp/kansuu/round.htm#floop
を参照してください。


戻る
記号を数字 に認識させて、記号同志の足し算をしたい。例えば○が1、△が0.5、合計1.5
名前の定義を使います。
同じ質問が「質問と回答」の「計算式・関数」「2002/3/16」
特定の文字をある数値として計算させたい」にあります。

ご質問の場合は、
「挿入」「名前」「定義」を選択し、「名前の定義」ダイアログボックスで、名前の入力欄に○と入力し、「参照範囲」の入力欄に数値1を入 力し{OK}ボタンを押します。
「挿入」「名前」「定義」を選択し、「名前の定義」ダイアログボックスで、名前の入力欄に△と入力し、「参照範囲」の入力欄に数値0.5 を入力し{OK}ボタンを押します。

数式は、
=○+△
と入力します。



戻る
セルに入力した数値 にもっとも近い値をリストから検索し、その行,列の項目名を返す
添付ファイルを参照してください。
「配列数式」を使います。
セルB7には、
=MIN(IF(MIN(ABS($E$8:$J$14-$B$6))=ABS($E$8:$J$14-$B$6),$D$8:$D$14))
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{  }でくくられます。
自分で{  }を入力してはいけません。
数式の意味
IF(MIN(ABS($E$8:$J$14-$B$6))
もし、セル範囲E8:J14からセルB6の値を引いた値の絶対値の最小値が
=ABS($E$8:$J$14-$B$6)
セル範囲E8:J14からセルB6の値を引いた値の絶対値と均しい場合は、
=MIN(....,$D$8:$D$14)
対象のセル範囲D8:D14の値の最小値を返します。

セルB8には、
=MIN(IF(MIN(ABS($E$8:$J$14-$B$6))=ABS($E$8:$J$14-$B$6),$E$7:$J$7))
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。



戻る
ファイルを開いた時点で目標日時までの残り日 時を出したい
日時の引き算でできます。
具体的には、A1セルに目標日時が
2005/6/12 18:35:00
(日付と時刻の間にはスペースが必要です)
と入力されているとします。
「書式」「セル」を選択し、「表示形式」の「分類」で「ユーザー定義」を選択し、「種類」欄に「yyyy年mm月dd日 hh"時"mm"分"ss"秒"」と入力し「OK」ボタンを押します。
セルB1には、
=IF(A1>NOW(),A1-NOW(),0)
と入力し、「書式」「セル」を選択し、「表示形式」の「分類」で「ユーザー定義」を選択し、「種類」欄に「"残り"d"日と" hh"時間";;」と入力し「OK」ボタンを押します。
時間が今日の日付を超過した場合は、何も表示しません。
この計算式では、ファイルを開いたときとシートのが再計算された時に時刻が変わります。


戻る
リストから検索条件に一致した複数データの抽出
「データ」「フィルタ」「フィルタオプションの設定」を使う方法を示します。

「フィルタオプションの設定」の説明は、「エクセルの操作説明」の
http://kiyopon.sakura.ne.jp/sousa/index.htm
「フィルタオプションの設定」コマンド
http://kiyopon.sakura.ne.jp/sousa/Pg000076.htm
を参照してください。

添付ファイルのシート「フィルタオプション」を参照してください。

この抽出では、データリストと抽出先が同じシート上でないと機能しませんので注意してください。また、データの抽出は、抽出の操作をした 時にしかできませんので、データを追加したり修正した場合には、最新の抽出結果とするために、再度フィルタオプションの設定をする必要があります。
具体的には、次のようになります。
検索値の入力セルC2には、キムラで始まる文字列を検索するために、「キムラ*」と入力します。

ご質問の場合は、検索用リストのいずれかのセルを選択した状態で、「データ」「フィルタ」「フィルタオプションの設定」を選択し、

「抽出先」を「指定した範囲」にし、「リスト範囲」に検索用リスト範囲「Sheet1!$B$11:$E$19」が入力されていることを 確認します。(間違っていれば選択し直します。)

「検索条件範囲」に、項目名を含んだ状態で「Sheet1!$C$1:$C$2」を選択します。
「抽出範囲」には、抽出データが上書きされても困らないセル範囲で、抽出したい項目名をあらかじめ行の先頭に入力しておきます。左上端セ ルSheet1!$G$5を選択します。
「OK」ボタンを押します。
 

関数で検索値に合致するデータをリアルタイムで返す方法を示します。

添付ファイルのシート「関数」を参照してください。
INDIRECT関数と「配列数式」を使います。

セルC6には、セルC2を含むセル範囲C12:C19の行のC列の1番目に検索されたデータを返します。
=INDIRECT("C"&SMALL(IF(NOT(ISERROR(FIND($C$2,$C$12:$C$19))),ROW($C$12:$C$19)),1),TRUE)
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。
数式の意味
=INDIRECT("C"&
文字列"C"と

(FIND($C$2,$C$12:$C$19)
セルC2の文字列がセル範囲C12:C19に含まれるか検索し

IF(NOT(ISERROR)),
エラーでない場合

ROW($C$12:$C$19)
そのセル範囲の行番号を配列で返し

SMALL(IF(NOT(ISERROR)),ROW($C$12:$C$19)),1)
一番に小さい行番号を返し

,TRUE)
A1形式の参照式とします。

セルC7には、セルC2を含むセル範囲C12:C19の行のC列の2番目に検索されたデータを返します。
=INDIRECT("C"&SMALL(IF(NOT(ISERROR(FIND($C$2,$C$12:$C$19))),ROW($C$12:$C$19)),2),TRUE)
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

セルC8には、セルC2を含むセル範囲C12:C19の行のC列の3番目に検索されたデータを返します。
=INDIRECT("C"&SMALL(IF(NOT(ISERROR(FIND($C$2,$C$12:$C$19))),ROW($C$12:$C$19)),3),TRUE)
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

セルD6には、セルC2を含むセル範囲C12:C19の行のD列の1番目に検索されたデータを返します。
=INDIRECT("D"&SMALL(IF(NOT(ISERROR(FIND($C$2,$C$12:$C$19))),ROW($C$12:$C$19)),1),TRUE)
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

セルD7には、セルC2を含むセル範囲C12:C19の行のD列の2番目に検索されたデータを返します。
=INDIRECT("D"&SMALL(IF(NOT(ISERROR(FIND($C$2,$C$12:$C$19))),ROW($C$12:$C$19)),2),TRUE)
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

セルD8には、セルC2を含むセル範囲C12:C19の行のD列の3番目に検索されたデータを返します。
=INDIRECT("D"&SMALL(IF(NOT(ISERROR(FIND($C$2,$C$12:$C$19))),ROW($C$12:$C$19)),3),TRUE)
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

セルE6には、セルC2を含むセル範囲C12:C19の行のE列の!番目に検索されたデータを返します。
=INDIRECT("E"&SMALL(IF(NOT(ISERROR(FIND($C$2,$C$12:$C$19))),ROW($C$12:$C$19)),1),TRUE)
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

セルE7には、セルC2を含むセル範囲C12:C19の行のE列の2番目に検索されたデータを返します。
=INDIRECT("E"&SMALL(IF(NOT(ISERROR(FIND($C$2,$C$12:$C$19))),ROW($C$12:$C$19)),2),TRUE)
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

セルE8には、セルC2を含むセル範囲C12:C19の行のE列の3番目に検索されたデータを返します。
=INDIRECT("E"&SMALL(IF(NOT(ISERROR(FIND($C$2,$C$12:$C$19))),ROW($C$12:$C$19)),3),TRUE)
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

対象の検索値がない場合に#N/Aエラーを表示しないようにするために、セル範囲C6:E8を選択し、「書式」「条件付き書式」を 選択し、「条件付き書式の設定」ダイアログボックスで、セル「C6」がアクティブの状態で「条件1」の「数式が」
(エクセル2007以降の場合、[ホーム]リボンの、「スタイル」の中から[条件付き書式]を選択し、「新しいルール]を選択します。
「新しい書式ルール」ダイアログボックスで、「ルールの種類を選択してください」の中から、「数式を使用して、書式設定するセルを決定」を選択し、[ルールの内容を編集しいてください]で、「次の数式を満たす場合に値を書式設定」の中に、数式を)
「=ISERROR(C6)」と入力し、 「書式」ボタンを押して、「フォント」の「色」を「白」にして「OK」ボタンを押し、「条件付き書式の設定」ダイアログボックスで、「OK」ボタンを押し ます。

それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「検索+行列」INDIRECT
http://kiyopon.sakura.ne.jp/kansuu/address.html#indirect
「統計関数」SMALL
http://kiyopon.sakura.ne.jp/kansuu/avedev.html#SMALL
「論理関数」ISERROR
http://kiyopon.sakura.ne.jp/kansuu/if.html#iserror
NOT
http://kiyopon.sakura.ne.jp/kansuu/if.html#not
「検索+行列」ROW
http://kiyopon.sakura.ne.jp/kansuu/address.html#row
を参照してください。
 



戻る
行を挿入したいが「配列の一部が変更 できません」となり弱ってます
行を挿入したいセル範囲に「配列数式」が入力してあるためです。
いったん「配列数式」別のセルに移動します。
その方法
「編集」「ジャンプ」で「セル選択」を選択し、「数式」を選択し「OK」ボタンを押します。
数式セルがすべて選択されますので、「編集」「切り取り」します。
いったん別のセルに貼り付けるために、関係ないセルを選択し「編集」「貼付」します。
行を挿入します。
元のセルに位置に数式を「編集」「切り取り」して、「編集」「貼り付け」します。
行が増えた分だけ数式を変更する必要がある場合は、次のようにして「配列数式」を編集します。
行を追加したセル範囲を含んで配列数式を選択して、{F2}キーを押し、数式を変更した後{Shift}+{Ctrl}+{Enter} で「配列数式」として確定します。


戻る
セルに入力した"平成15年"の”15”だけを表 示したい
セルに入力したのが文字列の場合なら次のようにします。
A1セルに
"平成15年"
と入力してあるとします。
セルB1に"15"を取り出すには、
=MID(A1,3,2)
と入力します。
数式の意味
A1セルの3文字目から2文字取り出します。
しかし、これでは1桁の年号の場合は次の,"年"もとりだしてしまう為、確実ではありません。
確実に数値の部分だけを取り出すようにするには、
セルB1に
=TEXT(DATEVALUE(A1&"1月8日"),"e")
と入力します。
数式の意味
DATEVALUE(A1&"1月8日")
A1セルの文字列"平成15年"と、文字列"1月8日"を文字列結合関数&でつなげて、"平成15年1月8日"の日付シリアル値 とします。
=TEXT(DATEVALUE(A1&"1月8日"),"e")
で、元号の年"15"のみを返します。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
また、別の方法では、「エクセルで使えるソフト」に私の作成した
「数値取出」ユーザー定義関数
http://kiyopon.sakura.ne.jp/soft/mojidas.htm
を使えば、文字列と数値の混在データから数値のみ(または文字のみ)を返すことができます。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
このソフトを使用する場合は、「アドインソフトを使う場合の注意点」
http://kiyopon.sakura.ne.jp/soft/addin.html
を必ずお読み下さい。


戻る
伝票番号の出現数が多い方からその伝票番号 と合計金額を返す
添付ファイルを参照してください。
 
A B C
1 伝票番号 金額
2 No.1 HA4500 \4,500
3 No.2 HA4500 \5,000
4 No.3 HA4501 \5,000
5 No.4 HA4500 \4,500
6 No.5 HA4501 \8,000
7 No.6 HA4502 \5,500
8 No.7 HA4502 \6,500
9 No.8 HA4500 \3,200
10 No.9 HA4502 \6,400
11 No.10 HA4500 \3,200
12   伝票番号 合計
13 1位 HA4500 \20,400
14 2位 HA4502 \18,400
15 3位 HA4501 \13,000
 INDIRECT関数と「配列数式」を使います。

セルB13には、セル範囲B2:B11の中で、伝票番号の一番多いデータを返します。
=INDIRECT("B"&MIN(IF(LARGE(COUNTIF($B$2:$B$11,$B$2:$B$11),1)=COUNTIF($B$2:$B$11,$B$2:$B$11),ROW($B$2:$B$11))),TRUE)
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。
数式の意味
(LARGE(COUNTIF($B$2:$B$11,$B$2:$B$11),1)
セル範囲B2:B11で、1番目に伝票番号の多いセル数を返します。
=INDIRECT("B"&MIN(IF(LARGE(COUNTIF($B$2:$B$11,$B$2:$B$11),1)=COUNTIF($B$2:$B$11,$B$2:$B$11),ROW($B$2:$B$11))),TRUE)
文字列"B"と、そのセル数と同じセル数の伝票番号の行番号を文字列結合関数(&)
で結合し、A1形式のセル参照式とします。

セルB14には、セル範囲B2:B11の中で、伝票番号の二番目に多いデータを返します。
=INDIRECT("B"&MIN(IF(LARGE(COUNTIF($B$2:$B$11,$B$2:$B$11),COUNTIF($B$2:$B$11,B13)+1)=COUNTIF($B$2:$B$11,$B$2:$B$11),ROW($B$2:$B$11))),TRUE)
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。
数式の意味
LARGE(COUNTIF($B$2:$B$11,$B$2:$B$11),COUNTIF($B$2:$B$11,B13)+1)
セル範囲B2:B11で、セルB13に合致するセル数+1番目に伝票番号の多いセル数を返します。
B13セルに合致するセルが2つあれば、次に大きい順位は2番目ではなく(B13セルに合致するセル数+1で)3番目となります。

セルB15には、セル範囲B2:B11の中で、伝票番号の三番目に多いデータを返します。
=INDIRECT("B"&MIN(IF(LARGE(COUNTIF($B$2:$B$11,$B$2:$B$11),COUNTIF($B$2:$B$11,B13)+COUNTIF($B$2:$B$11,B14)+1)=COUNTIF($B$2:$B$11,$B$2:$B$11),ROW($B$2:$B$11))),TRUE)
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

該当データがない場合は、#NUM!エラーが返りますので、そのエラー値を表示しないように、セル範囲「B13:B15」を選択 し、「書式」「条件付き書式」を選択し、「条件付き書式の設定」ダイアログボックスで、「条件1」に「数式が」
(エクセル2007以降の場合、[ホーム]リボンの、「スタイル」の中から[条件付き書式]を選択し、「新しいルール]を選択します。
「新しい書式ルール」ダイアログボックスで、「ルールの種類を選択してください」の中から、「数式を使用して、書式設定するセルを決定」を選択し、[ルールの内容を編集しいてください]で、「次の数式を満たす場合に値を書式設定」の中に、数式を)
「=ISERROR(B13)」と入力し、 「書式」ボタンを押して、「フォント」の「色」を「白」にして「OK」ボタンを押し、「条件付き書式の設定」ダイアログボックスで、「OK」ボタンを押し ます。

セルC13には、セルB2の伝票番号の合計金額を返します。
=SUMIF($B$2:$B$11,B13,$C$2:$C$11)
数式の意味
もし、セル範囲B2:B11の値がセルB13と同じ場合は、該当する行のセル範囲C2:C11
の値を合計して返します。

セルC13をコピーして、下のセル範囲C15まで貼り付けます。



戻る
最小値(あるいは最大値)のセルの隣のセルに ○を付けたい
A1:A15の最小値のセルの隣の列(B列)に○を付ける場合
セル範囲B1を選択し、
=IF(A1=MIN($A$1:$A$15),"○","")
と入力します。
このセルをコピーして、下のセル範囲B15まで貼り付けます。 
数式の意味
もしセルA1の値と、セル範囲A1:A15の中の最小値が等しい場合は、"○"を表示
し、それ以外は何も表示しません。

最大値の場合はMINをMAXにかえます。
=IF(A1=MAX($A$1:$A$15),"○","")

関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「論理関数」IF
http://kiyopon.sakura.ne.jp/kansuu/if.html#if
の「統計関数」MIN
http://kiyopon.sakura.ne.jp/kansuu/avedev.html#MIN
の「統計関数」MAX
http://kiyopon.sakura.ne.jp/kansuu/avedev.html#MAX
を参照してください



戻る
12:10から15:25までの間でラン ダムに時刻を表示する
セル範囲A1:A10に、12:10から15:25までの時刻を分単位でランダムに時刻を発生するには、
A1セルに
=(RANDBETWEEN(TIMEVALUE("12:15")*24*60,TIMEVALUE("15:25")*24*60))/24/60
と入力します。
RANDBETWEEN関数では、乱数範囲に整数を指定して整数で返しますので、時刻"12:15"という時刻シリアル値を整数にするた めに24倍してさらに60倍しています。
その後、乱数の結果を24で割って、さらに60で割って時刻シリアル値としています。
セルの書式設定を時刻にします。「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で「時刻」を 選択し、「種類」欄に「13:30」として「OK」ボタンを押します。
このセルをコピーして、下のセル範囲A10まで貼り付けます。
それぞれのセルには、別々の時刻が表示されます。


戻る
有効桁数を上位3桁にする
有効桁数を指定桁数にするには、次のような関数になります。
=RoundDown(数値, -(Len(Abs(Int(数値))) - 桁数))

A1セルの数値を上位3桁にするには
=RoundDown(A1, -(Len(Abs(Int(A1))) - 3))
となります。

さらに、1000円未満は十円単位、十円未満の場合は一円単位とするには、
=RoundDown(A1, -(Len(Abs(Int(A1))) - 3+IF(A1<10,2,if(A1<1000,1,0))))
となります。

参考に、有効桁数を任意の桁数に指定できる「指定桁数」ユー ザー定義関数があります。



戻る
【 】内の文字だけを抜き出したい ○○○【△□◎】 → △□◎
セルA1に入力した文字列
○○○○【□□□□】
から【 】内の文字だけを抜き出すには、
=MID(A1,FIND("【",A1)+1,FIND("】",A1)-1-FIND("【",A1))
と入力します。
数式の意味
FIND("【",A1)
セルA1の文字列から、文字列"【"の文字位置を返します。(この場合5文字目ですから5が返ります。)

FIND("】",A1)
セルA1の文字列から、文字列"】"の文字位置を返します。(この場合10文字目ですから10が返ります。)
これまでの計算名結果をつなげると
=MID(A1,5+1,10-1-5)
セルA1の文字列の5+1文字目(6文字目)から、10-1-5文字(4文字)取り出します。

それぞれの関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」の
MID
http://kiyopon.sakura.ne.jp/kansuu/val.html#mid
FIND
http://kiyopon.sakura.ne.jp/kansuu/val.html#find
を参照してください。



戻る
日付から曜日を 求める2005/5/20だと"第3金曜日"のように数字を入れて表示したい
A1セルに日付が
2005/5/20
のように入力してあるとします。
B1セルに
="第"&JIS(INT((DAY(A1)-1)/7)+1)&TEXT(A1,"aaaa")
と入力します。

第3金曜日
が返ります。
数式の意味
=INT((DAY(A1)-1)/7)+1
対象日付-1を7で割ってその整数値+1から何週目かを返します。
TEXT(A1,"aaaa")
A1セルの日付から"何曜日"を返します。
文字列"第"とJIS関数で全角表示した何週目かの数値と"何曜日"を文字列結合関数&で結合します。
それぞれの関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm

「数学+三角」
INT
http://kiyopon.sakura.ne.jp/kansuu/abs.html#INT
「日付+時刻」
DAY
http://kiyopon.sakura.ne.jp/kansuu/date.html#day
「文字列関数」
JIS
http://kiyopon.sakura.ne.jp/kansuu/val.html#jis
TEXT
http://kiyopon.sakura.ne.jp/kansuu/val.html#text
を参照してください。



戻る
生年月日から年齢を19.4歳と返す
セルF2に生年月日が入力されているとします。

0ヶ月の場合0を返しません。
=IF(F2=0,"",VALUE(DATEDIF(F2,TODAY(),"y")+ROUNDDOWN(DATEDIF(F2, TODAY(),"ym")/12,1)))
セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で、「ユーザー定義」を選択 し、「種類」欄に「G/標準"歳"」と入力し、「OK」ボタンを押します。

DATEDIF関数の説明は、「関数の使い方説明」
のDATEDIF
それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
のTODAY
http://kiyopon.sakura.ne.jp/kansuu/date.html#today

VALUE
http://kiyopon.sakura.ne.jp/kansuu/val.html#value

DATEDIF
http://kiyopon.sakura.ne.jp/kansuu/date.html#dateif

ROUNDDOWN
http://kiyopon.sakura.ne.jp/kansuu/round.htm#rounddown
を参照してください。



戻る
漢字で入力した氏名 (姓と名の間にスペースあり)の頭文字をカナで1文字引き出す
 
A B C D
1 番号 氏名
2 1 甲野 太郎
3 2 上野 一郎
4 3 甲野 花子
 セルD2に氏名が入力されているとします。
セルB2には、セルD2に氏名が入力されていれば、その苗字のかな(D2セルのカナの左から1文字)を返します。
=IF(D2=0,"",LEFT(PHONETIC(D2),1))

セルC2には、セルD2に氏名が入力されていれば、その名前のかな(D2セルのカナの左空白文字番目+1文字目の1文字)を返しま す。
=IF(D2=0,"",MID(PHONETIC(D2),FIND(" ",PHONETIC(D2))+1,1))




戻る
A1セルに 12,000を12,000(全角)と「カンマ」をつけて表示させる方法
JIS関数とTEXT関数を使います。
別のセルに
=JIS(TEXT(A1,"#,###"))
と入力します。

関数についての説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」TEXT
http://kiyopon.sakura.ne.jp/kansuu/val.html#text
JIS
http://kiyopon.sakura.ne.jp/kansuu/val.html#jis
を参照してください。




戻る
成績表の男女別の順位を返す
添付ファイルを参照してください。
 
A B C D E F G H I J K L
1 No 氏    名 性別 国語 数学 社会 合計 総合順位 男順位 女順位
2 1 松 木 太郎 56 69 57 182 4 182 3     
3 2 三 浦 花子 84 81 68 233 2     233 1
4 3 佐 々木 三郎 86 35 49 170 5 170 4    
5 4 佐 藤 由美 67 58 38 163 6     163 2
6 5 田 中 五郎 94 75 86 255 1 255 1    
7 6 渡 邊 六郎 28 91 69 188 3 188 2    
セルI2には、男の合計を返します。
=IF($C2=I$1,$G2,"")
と入力し、下のセル範囲に貼り付けます。

列を追加し、順位を返します。
セルJ2には、
=IF(I2<>"",RANK(I2,I$2:I$7),"")

セル範囲I2:J7迄をコピーして、右のセル範囲に貼り付けます。
{Ctrl}キーを押しながら、セルI2と、セルK2を選択し、「書式」「列」「表示しない」にします。



戻る
30分以上は繰上げ・30分未満は繰下げ
IF関数で、端数が30以上かどうかを計算する必要があります。

時刻は24倍すれば、1時間が1となります。30分は0.5です。
E19に時刻が入力してあるとします。
1時間未満の端数時刻は次のように計算します。
=E19*24-INT(E19*24)

IF関数とFLOOR関数CEILING関数を組み合わせて次のようになります。
ただし、30分以上は繰り上げ30分以下は繰り上げとなっていますので30分ちょう
どの場合は、どちらにも該当しますから繰り下げとしています。

=IF(E19*24-INT(E19*24)<0.5,FLOOR(E19,TIMEVALUE("0:30")),CEILING(E19,TIMEVALUE("0:30")))

30分以上繰り上げ30分未満繰り下げの場合は次のようになります。
=IF(E19*24-INT(E19*24)>=0.5,CEILING(E19+0.0001,TIMEVALUE("0:30")),FLOOR(E19,TIMEVALUE("0:30")))



戻る
乱数を固定する方法
RAND関数やRANDBETWEEN関数は、自動再計算機能によって、ワークシートの再計算の度に新しい乱数を発 生し直します。
発生させた乱数を数値として固定させるには、RAND関数を入力したセルをコピーして、同じセルに「値」として貼り付けます。
または、関数を入力したセルを選択し[F2]キーを押してから[F9]キーを押します。


戻る
A1,A2, A3,A4セルにそれぞれ=B1,=B3,=B5,=B7とドラッグ入力をしたい
INDIRECT関数を使います。
A1セルには、
=INDIRECT("B"&ROW()*2-1,TRUE)
と入力します。
このセルをドラッグして、下のセル範囲に貼り付けます。
INDIRECT関数の説明は「関数の使い方説明
の「検索+行列」のINDIRECT
http://kiyopon.sakura.ne.jp/kansuu/address.html#indirect
を、参照して下さい。


戻る
セル内に計算式を入れると答 えではなくてその計算式が画面上に表示されます
セルに計算式を表示しているのを元に戻すには、「ツール」「オプション」「表示」タグの「ウィンドウオプション」 で、「数式」のチェツクを外し、「OK」ボタンを押します。


戻る
セ ルE1に=SUM(A1:C1)と入力し、セルD1に数値を入力すると=SUM(A1:D1)となる
数式の拡張機能を止めたいのですね。
[ツール][オプション][編集]タブで、[リスト形式および数式を拡張する]のチェックを外して下さい。


戻る
30点が3回、60点が3回と複数 の最頻値から最大数値を表示したい
MODE関数では、最頻値となる数値が複数ある場合は、引数を評価していく順で、一番最初に最頻値となった数値が返 されます。
このため、「データ」範囲を「並べ替え」で「降順」とすれば、おおきな数値が上の行きますから、MODE関数の結果も大きい数値が最頻値 として返ります。


戻る
最小価格の落札会社をすべて表示する
添付ファイルを参照してください。
この例では、3つの列を追加しています。
「配列数式」とIF関数、ISERROR関数、SMALL関数、COLUMN関数、INDIRECT関数を使います。
セルB3には、
=IF(ISERROR(SMALL(IF($F3:$I3=$E3,COLUMN($F3:$I3)),COLUMN()-COLUMN($A3))),"",INDIRECT("R2"&"C"&SMALL(IF($F3:$I3=$E3,COLUMN($F3:$I3)),COLUMN()-COLUMN($A3)),FALSE))
と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」として確定します。
確定後、数式は、{  }でくくられます。
自分で{  }を入力してはいけません。
このセルをコピーして、下のセル範囲B5
右のセル範囲D5まで貼り付けます。

数式を相対的な列番号となるように計算していますので、同額の会社名が多くなる可能性が有れば、列を追加して数式をそのまま貼り付 けすれば対応できます。

数式の意味
IF(ISERROR(SMALL(IF($F3:$I3=$E3,COLUMN($F3:$I3)),COLUMN()-COLUMN($A3))),"",
セル範囲F3:I3の値がセルE3と等しければ該当セルの列番号の、該当数式の入力セル列番号(この場合B3ですから2)からA3セルの 列番号(1)を引き(2-1ですから1)番目に小さい値を返します。
この値がエラーの場合、何も返しません。
INDIRECT("R2"&"C"&SMALL(IF($F3:$I3=$E3,COLUMN($F3:$I3)),COLUMN()-COLUMN($A3)),FALSE))
前の数式と同様に
セル範囲F3:I3の値がセルE3と等しければ該当セルの列番号の、該当数式の入力セル列番号(この場合B3ですから2)からA3セルの 列番号(1)を引き(2-1ですから1)番目に小さい値を返し、文字列"R2C"と結合し、セル参照とします。

INDIRECT関数の説明は、「関数の使い方説明
の「検索+行列」のINDIRECT
http://kiyopon.sakura.ne.jp/kansuu/address.html#indirect

ISERROR関数の説明は「論理関数」の
http://kiyopon.sakura.ne.jp/kansuu/if.html#iserror

IF関数の説明は、「論理関数」の
http://kiyopon.sakura.ne.jp/kansuu/if.html#if

COLUMN関数の説明は、「検索+行列」の
http://kiyopon.sakura.ne.jp/kansuu/address.html#columns

SMALL関数の説明は、「統計関数」の
http://kiyopon.sakura.ne.jp/kansuu/avedev.html#SMALL
にあります。



戻る
セルごとの計算式を印刷してチェックしたい
計算式を印刷するには、「ツール」「オプション」「表示」たぐの「ウィンドウオプション」グループの「数式」に チェックを入れ、「OK」ボタンを選択します。
これで、セルに計算式が表示されます。
元の表示に戻すには、再度「ツール」「オプション」「表示」たぐの「ウィンドウオプション」グループの「数式」にチェックを外し、 「OK」ボタンを選択します。


戻る
2004/1/1とセルに入力して違う セルに200411と変換
TEXT関数を使います。
セルA1に
2004/1/1
と入力してあるとします。
この値は日付シリアル値として認識されています。
B1セルに
=TEXT(A1,"yyyymd")
と入力します。
TEXT関数についての説明は、「関数の使い方説明
の「文字列関数」の「TEXT」
http://kiyopon.sakura.ne.jp/kansuu/val.html#text
を参照してください。

戻る
エラー値(#N/A)を非表示にしたい

二つの方法があります。

「条件付き書式」で、エラー値の場合は、文字色を白にして見えなくする方法
対象セルがA1の場合は
セルを選択し、「書式」「条件付き書式」を選択し、「条件付き書式設定」ダイアログボックスで、「条件1」に「数式が」
(エクセル2007以降の場合、[ホーム]リボンの、「スタイル」の中から[条件付き書式]を選択し、「新しいルール]を選択します。
「新しい書式ルール」ダイアログボックスで、「ルールの種類を選択してください」の中から、「数式を使用して、書式設定するセルを決定」を選択し、[ルールの内容を編集しいてください]で、「次の数式を満たす場合に値を書式設定」の中に、数式を)
「= ISERROR(A1)」と入力し、{Shift}キーと{Ctrl}キーを押しながら{Enter}を押して「配列数式」として確定します。

「書式」ボタンを押して「フォント」の「色」を「白」にして「OK」ボタンを押します。

数式にIF関数を追加してエラーの場合表示しない設定にする。
=IF(ISERROR(数式),"",数式)
とします。

ISERROR関数の説明は「関数の使い方説明
の「論理関数」のISERROR
http://kiyopon.sakura.ne.jp/kansuu/cell.html#iserror
を参照してください。



戻る
合計から個々のデータの パーセントを割り出すと100にならないことがあります
添付ファイルを参照してください。
ご質問の場合は、合計値を100としたいのですから、小数点以下の端数をいずれかのセルで調整する必要があります。
 
A B C D E F
1 項目 数値 修正% 少数端数 端数順位
2 a 4 12% 12% -0.235294118 4
3 b 6 18% 18% -0.352941176 3
4 c 7 21% 21% -0.411764706 2
5 d 8 24% 23% -0.470588235 1
6 e 9 26% 26% 0.470588235 5
7 合計 34 101% 100% 誤差 1
セルF7には、100%との誤差を計算します。
=INT((C7-1)*100)

セルE2には、小数点以下の端数を計算します。
=B2/$B$7*100-ROUND(B2/$B$7*100,0)
このセルをコピーして下のセル範囲E6まで貼り付けます。

セルF2には、小数点以下の端数の順位を計算します。
=RANK(E2,$E$2:$E$6,1)
このセルをコピーして下のセル範囲F6まで貼り付けます。

セルD2には、修正した%を計算します。
=(B2/$B$7)-(IF(F2<=ABS($F$7),$F$7,0)/100)
このセルをコピーして下のセル範囲D6まで貼り付けます。

黄色の列は「表示しない」にします。



戻る
マイナスの部分のみ集計する方法
SUMIF関数を使います。
具体的には、
セル範囲B1:B100に集計データがあるとします。
B1:B100のデータがマイナスの場合、セルB1:B100の集計するには、
=SUMIF(B1:B100,"<0",B1:B100)
SUMIF関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「数学+三角」の「SUMIF」
http://kiyopon.sakura.ne.jp/kansuu/abs.html#sumif
を参照してください。


戻る
昨年の実績と、今年の実績を入力した月までの比 率を出す
SUMIF関数を使います。
 
   A B C D E F
1 4月 5月 6月 合計 比率
2 A社 15 年度 379,421,000 492,518,000 554,318,000 1,426,257,000 96.8%
3 16年度 367,264,000     367,264,000
4 B社 15 年度 45,081,900 47,156,600 47,854,900 140,093,400 89.6%
5 16年度 40,398,000     40,398,000
セル範囲C2:E2に昨年の実績が入力してあります。
セル範囲C3:E3に今年の実績を入力します。
今年寝実績を入力した月までの比率は、
=SUM(C3:E3)/SUMIF(C3:E3,">0",C2:E2)
となります。
数式の意味
セル範囲C3:E3の合計÷セル範囲C3:E3がゼロより大きいセルに対応する、セル範囲C2:E2を合計

このセルを選択し、「書式」「セル」を選択し「セルの書式設定」ダイアログボックスの「表示形式」タグの「分類」で「パーセンテー ジ」を選択し「小数点以下の桁数」に「1」などとして、「OK」ボタンを押します。
SUMIF関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「数学+三角」のSUMIF
http://kiyopon.sakura.ne.jp/kansuu/abs.html#sumif
を参照して下さい。



戻る
表の中で、一番使われた数値を計算式で出したい
セル範囲の数値で、最も出現回数の多いデータを取り出す場合は、MODE関数を使います。
この関数では、数値データしか判定できません。
具体的には、A1セルからA4セルまで、数値が入力されているとします。
 
A
1 1
2 1
3 2
4 3
最も出現頻度の多い数値は、
=MODE(A1:A4)
となります。
MODE関数では、出現頻度が同一の数値があると計算結果に間違いが生じます。


戻る
リストのデータから検索値より大きい最初のデー タを返す
配列数式を使います。
 
A B C D
1 データ H12.10.1 H13.4.1
2 H9.7.1 
3 H10.7.1
4 H11.7.1
5 H12.4.1
6 H13.4.1
7 H14.4.1
8 H15.10.1
セルD1に、検索値セルC1より大きくて、セル範囲A2:A8の一番小さいデータを返す式、
=MIN(IF(C1<$A$2:$A$8,$A$2:$A$8))
と入力し{Ctrl}+{Shift}+{Enter}で、「配列数式」として確定します。
確定後数式は、{   }でくくられます。
自分で{  }を入力してはいけません。


戻る
X^3+ 3315*X^2+36826*X−1933358=0 の時Xの値をもとめる
エクセル求めるとなるとこのように複雑で乗数の多い場合は、不正確ですが、「ゴールシーク」を使います。
具体的には、セルA1をXとします。
セルB1に数式
=A1^3+3315*A1^2+36826*A1−1933358
と入力します。
「ツール」「ゴールシーク」を選択します。
「ゴールシーク」ダイアログボックスで、「数式入力セル」に「B1」、「目標値」に「0」、「変化させるセル」に「A1」と入力し、 「OK」ボタンを押します。
「ゴールシーク」ダイアログボックスに、セルB1の収束値を探索しています。解答が見つかりました。
目標値: 0
現在値: -4.70318E-8
と表示され、A1セルには、
19.18292
などと数値が返ります。
実際のB1セルの値は、0ではありません。
-4.70318×10のマイナス8乗で、数値の有効桁数15桁まで表示すれば
-0.0000000470317900180817
です。
A1セルの値も
19.18292255
です。
「ゴールシーク」では、エクセルが変化させるセルの値を自動的に変化させることで値を求めていますので、ある程度の不正確さがあります。

ご質問のように少数第2位を四捨五入ならば問題ないでしょう。



戻る
シート1に文字を入力するとほかの シートにも自動入力される方法は
セル参照を使います。
具体的には、Sheet2のセルB1にSheet1のセルA1の文字を自動表示させるには
Sheet2のセルB1に
=
と入力し、Sheet1のセルA1を選択して「Enter」キーを押します。
=Sheet1!A1
と数式が入力されます。
この場合Sheet1のセルA1に何も入力してない場合、0が返りますので、それを表示しないようにするには、
=IF(Sheet1!A1=0,"",Sheet1!A1)
と入力します。
""は、何も表示しないと言う意味です。
あるいは、Sheet2のセルB1を選択し、「書式」「セル」を選択し、「表示形式」の「分類」で、「ユーザー定義」を選択し、「G/標 準;G/標準;;G/標準」と入力し、「OK」ボタンを押します。
これで、数値の0を表示しなくなります。


戻る
A列の~を-に一括で変更したい
通常の「置換」で「検索文字列」に「~~」「置換後の文字」に「-」とすると、日付シリアル値になってしまいますの で、「置換」は使えません。
方法としては、SUBSTITUTE関数を使います。
A1セルの文字列"~"を"-"に置き換えます。
B列を挿入し、B1セルに数式
=SUBSTITUTE(A1,"~","-")
と入力します。
この式を下のセル範囲B200までコピー貼り付けします。
セル範囲B1:B200までを選択し、「編集」「コピー」します。
セルA1を選択し「編集」「形式を選択して貼り付け」で「値」にチェックを入れて「OK」ボタンを押します。
B列を削除します。


戻る
少数点以下が60進数の加算
A1セルに
1524.56
A2セルに
1525.23
と入力してある場合
整数部分と、小数点以下の部分を別に計算します。
(1)整数部分の合計
=INT(A1)+INT(A2)

小数点以下は、次のように求めます。
=(A1+A2)-(INT(A1)+INT(A2))
=0.79
となりますが、これを小数点以下60進数で直すと
(2)整数部分は、0.6で除算した整数部分
=INT((A1+A2-(INT(A1)+INT(A2)))/0.6)
=1

(3)小数点以下は、0.6で割った余り
=MOD(A1+A2-(INT(A1)+INT(A2)),0.6)
=0.19

これら(1),(2),(3)をすべて加算すると
=INT(A1)+INT(A2)+INT((A1+A2-(INT(A1)+INT(A2)))/0.6)+MOD(A1+A2-(INT(A1)+INT(A2)),0.6)
となります。



戻る
1.5を1時間30分と表示する
1.5と入力したセルに、1時間30分と自動表示することはできません。
別のセルに表示することなら計算式と「セルの書式設定」できます。
具体的には、
A1セルに1.5と入力してあるとします。
B1セルに
=A1/24
と入力します。
B1セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボックスの「表示形式」の「分類」で「ユーザー定義」を選択 し「種類」欄に、「h時間m分」を入力し「OK」ボタンを押します。


戻る
カレンダーを自動作成
同じような質問が、「質問と回答」
の「計算式・関数」「2002/3/16」「祝日の色つけもできるカレンダー
にあります。
http://kiyopon.sakura.ne.jp/situmon/kaitou/calendar.xls
また、「エクセルで使えるソフト
の「万年カレンダー」
http://kiyopon.sakura.ne.jp/soft/mannen.xls
も参照してください。


戻る
1:00を60分 に変更したい
セルA1に
1:00
と入力してあるとします。

表示のみ60分に変更する場合。
セルA1を選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボ
ックスの「表示形式」の「分類」て、「ユーザー定義」を選択し、「種類」欄に
「[m]分」と入力し、「OK」ボタンを押します。
参考に
24時間以上を表示したい場合は
[h]:mm
とします。
60秒以上を表示したい場合は
[s]
とします。

数値を60に変換する場合。
セルB1に
=A1*24*60
と入力くします。
セルB1を選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログボ
ックスの「表示形式」の「分類」て、「ユーザー定義」を選択し、「種類」欄に
「#分」と入力し、「OK」ボタンを押します。



戻る
ボウリングのスコア計算
添付ファイルを参照してください。
1フレーム毎の投球数を1回目と2回目をそれぞれに数値で入力します。
セルB3には、1回目と2回目の合計ピン数が10本未満(ストライクでもスペアーでもない)の場合の計算をします。
=IF((B2+C2)<10,B2+C2,0)
と入力します。

セルB4には、スペアーの場合の計算をします。
=IF(AND(B2+C2=10,B2<10),B2+C2+D2,0)
と入力します。

セルB5には、ストライクの場合の計算をします。
=IF(AND(B2=10,D2<10),B2+D2+E2,0)

セルB6には、ストライクが二回続いた場合の計算をします。
=IF(B2+D2=20,B2+D2+F2,0)
と入力します。

セルB7には、これらの計算結果を合計します。
=SUM(B3:B6)
と入力します。

セルB8には、このフレームまでの合計を計算します
=SUM($B$7:B7)
と入力します。

セル範囲B3:C3を選択して、「書式」「セル」を選択し、「配置」「文字列の制御」グループで、「セルを結合する」を選択し、 「文字の配置」「横位置」「中央揃え」として、「OK」ボタンを押します。
これらのセル範囲B3:B8をコピーして右のセル範囲T3まで、貼り付けます。

最終フレームのセルT3の数式は、
=IF((T2+U2)<10,T2+U2,0)
とします。
T4の数式は、
=IF(AND(T2+U2=10,T2<10),T2+U2+V2,0)
T5の数式は、
=IF(AND(T2=10,U2<10),T2+U2+V2,0)
T6の数式は、
=IF(T2+U2=20,T2+U2+V2,0)
とします。

セル範囲
T3:V3
を結合します。
セル範囲
T4:V4
を結合します。
セル範囲
T5:V5
を結合します。
セル範囲
T6:V6
を結合します。
セル範囲
T7:V7
を結合します。
セル範囲
T8:V8
を結合します。



戻る
入力済みの和暦を西暦に変換したい
A1セルに
T10
と入力してあるとします。
B1セルに
=YEAR(VALUE(A1&"/1/1"))
と入力します。
数式の意味
A1セルに、文字列結合関数&で/1/1をつなぎ、日付文字列の形式にします。
T10/1/1
という文字列となります。
VALUE関数で、日付シリアル値の大正10年1月1日となります。
さらに、YEAR関数で、年のみを返します。
それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」
CONCATENATE
http://kiyopon.sakura.ne.jp/kansuu/val.html#concatenate
VALUE
http://kiyopon.sakura.ne.jp/kansuu/val.html#value
「日付・時刻」
YEAR
http://kiyopon.sakura.ne.jp/kansuu/date.html#year
を参照してください。


戻る
1ヶ月前、2ヶ月前、3ヶ月前、を表示させる
 
EDATE関数を使います。
この関数を使うには、セットアッププログラムを実行して分析ツールを組み込み、[ツール]メニューの[アドイン]コマンドを使ってその分 析ツールを登録する必要があります。

1か月前
=MONTH(EDATE(TODAY(),-1))

TODAY()は、今日の日付を返します。

EDATE関数の説明
書式=EDATE(開始日,月)
 (開始日から起算して、指定した月数だけ前または後の日付に対応するシリアル値を返します。)




戻る
計算結果の 123456789を[123],[456],[789]と3つのセルに分ける
文字列関数のLEFT関数、LEN関数、RIGHT関数を使います。
数値を下の桁から取り出します。
桁数9桁までの数値に対しての例で示します。

具体的には、セルA1に、数値が入力してあるとします。
セルB1に、一億から百万までの桁の数値を返す式
=IF(LEN(A1)<7,"",RIGHT(LEFT(A1,LEN(A1)-6),3))

セルC1に、十万から千の桁までの数値を返す式
=IF(LEN(A1)<4,"",RIGHT(LEFT(A1,LEN(A1)-3),3))

セルD1に、千の桁までの数値を返す式
=RIGHT(A1,3)
と入力します。

表示されている数値は、文字列です。

これを数値にするには、VALUE関数を組み合わせて
セルB1に、一億から百万までの桁の数値を返す式
=IF(LEN(A1)<7,"",VALUE(RIGHT(LEFT(A1,LEN(A1)-6),3)))

セルC1に、十万から千の桁までの数値を返す式
=IF(LEN(A1)<4,"",VALUE(RIGHT(LEFT(A1,LEN(A1)-3),3)))

セルD1に、千の桁までの数値を返す式
=VALUE(RIGHT(A1,3))
と入力します。



戻る
昨年実績から今年の目標値を振り分ける
添付ファイルを参照してください。
 
A B C D E F G H I J K L M
1    目標 ランク 1班 2班 3班 4班 5班 6班 7班 合計
2 昨年実績 12 A+B 4 6 4 0 2 4 1 21
3     4.07 6.08 4.09 0.1 2.11 4.12 1.13  
4 24 C+D 15 15 12 13 12 15 15 97
5       15.07 15.08 12.09 13.1 12.11 15.12 15.13  
6 年 目標 12 A +B 12
7     2 3 2 0 1 2 1 11
8 24 C+D 24
9       4 4 3 3 3 4 4 25
 
C D E F G
1 目標 ランク 1班 2班
2 昨年実績 12 A+B 4 6
3 4.06 6.07
セルF3には、昨年実績の順位付けの為に、セルF2の値に、列番号÷100の値を返します。
=F2+COLUMN()/100
このセルをコピーして、右のセル範囲L3まで貼り付けます。
 
C D E F G
4 昨年実績 24 C+D 15 15
5 15.07 15.08
同様に、5行目に、昨年実績の順位付けの為に、セルF4の値に、列番号÷100の値を返します。
=F4+COLUMN()/100
このセルをコピーして、右のセル範囲L5まで貼り付けます。
この数式によって、同じ実績でも右の班の方が実績(小数点以下の部分)が大きくなります。

セルF7には、年目標に対する昨年実績の振り分けを小数点以下四捨五入した値を返します。
=ROUND(F2/$M$2*$D$6,0)
この式をコピーして、右のセル範囲L7まで貼り付けます。

セルM7には、セル範囲F7:L7の値の合計を返します。
=SUM(F7:L7)

 
C D E F G
6 年目標 12 A+B   2   4
7   2   3
セルF6には、F3の数値に対する順位と、M7の計算値との差から誤差の差し引きをした値を返します。
=F7+IF(ABS($M7-$D6)>=RANK(F3,$F$3:$L$3),IF($M7<$D6,1,IF($M7=$E6,0,-1)),0)
この式をコピーして右のセル範囲L6まで貼り付けます。
 
C D E F G
8   24 C+D   4   4
9         4   4
セルF9には、年目標に対する昨年実績の振り分けを小数点以下四捨五入した値を返します。
=ROUND(F4/$M$14*$D$8,0)
この式をコピーして、右のセル範囲L7まで貼り付けます。
 
  H I J K L M
6 12
7   2   0   1   2   1 11
セルM9には、セル範囲F9:L9の値の合計を返します。
=SUM(F9:L9)

セルF8には、F5の数値に対する順位と、M19の計算値との差から誤差の差し引きをした値を返します。
=F9+IF(ABS($M9-$D8)>=RANK(F5,$F$5:$L$5),IF($M9<$D8,1,IF($M9=$E8,0,-1)),0)
この式をコピーして右のセル範囲L8まで貼り付けます。

 
  H I J K L M
8 24
9   3   3   3   4   4 25
計算の為に挿入した行3,5,7,9は、「書式」で、「行」を「表示しない」にします。




戻る
前回点検年と点検周期から次回以降の点検予定の 自動表示
 
  A B C D E F G H I J K L
1 点検対象                      
2   簡易点検 詳細点検 前回詳細点検
3   2000 2001 2002 2003 2004 2005 2006 2007 2008
4 モニターテレビ 2 4       ◇     
セルB4には、
「簡易点検」の周期2を入力します。

セルC4には、
「詳細点検」の周期4を入力します。
この周期は、B4の周期より長いものを入力します。

セルD3には、
「前回点検」の年2000を入力します。

セルE3以降には、次の点検年を入力します。

セルE4には、
=IF(MOD((E3-$D$3),$C$4)=0,$C$3,IF(MOD((E3-$D$3),$B$4)=0,$B$3,""))
と入力します。
このセルをコピーして右のセル範囲L4まで貼り付けます。
数式の意味
もし、セルE3からセル$D$3を引いた値を、セル$C$4で割った余りが0の場合は、セル$C$3を返し、荘でない場合は、セルE3か らセル$D$3を引いた値を、セル$B$4で割った余りが0の場合は、セル$B$3を返します。

MOD関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm  の
「数学+三角」のMOD
http://kiyopon.sakura.ne.jp/kansuu/abs.html#mod
を参照してください。



戻る
セルの文字の右からから 指定した文字数を除外して残った左の文字を取り出す方法
文字列関数のLEFTとLENを使います。
LEN関数で全体の文字数を返し、全体の文字数から4を引いた文字数を、LEFT関数で左から取り出します。
具体的には、セルA1に文字が、
12345
と入力されているとします。
セルB1に
=LEFT(A1,LEN(A1)-4)
とします。
文字列関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「文字列関数」の
LEN
http://kiyopon.sakura.ne.jp/kansuu/val.html#len
LEFT
http://kiyopon.sakura.ne.jp/kansuu/val.html#left


戻る
CSVファィルで取り込んだ2つのセ ルにある郵便番号を結合したい
2つの方法があります。
1つ目
本当は、CSVデータをエクセルに取り込む段階で00を取り込む手直しが必要です。
CSVのデータを取り込むときに「文字列」としてその列のデータを取り込むことが必要です。
その方法は、「質問と回答」の「入力・操作」「2001/8/12」
CSVファイルとして保存した前ゼロ(例:00100)のデータを文字列("00100")として取り込みたい」にあります。
その後、次の関数によりセルの文字列を結合します。
A1セルに102
B1セルに0045
が入力されているとします。
C1セルの書式設定は、数式を入力できるように「標準」にしておきます。
C1セルに
=A1&B1
と入力します。
1020045
が返ります。

2つ目
TEXT関数で桁数をそれえてから結合します。
具体的には、
A1セルに102
B1セルに0045
が入力されているとします。
C1セルの書式設定は、数式を入力できるように「標準」にしておきます。
C1セルに
=TEXT(A1,"000")&TEXT(B1("0000")
と入力します。
1020045
が返ります。



戻る
データの中の最小価格の会社名を返す
INDIRCT関数と、「配列数式」を使います。
 
  A B C D E F
1 商品 A社 B社 C社 最安値 購入業者
2 りんご 100円 120円 150円 100円 A社
セルF1には、
=INDIRECT("R1C"&MIN(IF(E2=$B$2:$D$2,COLUMN($B$2:$D$2))),FALSE)
と入力し{Ctrl}+{Shift}+{Enter}で、「配列数式」として確定します。
確定後数式は、{   }でくくられます。
自分で{  }を入力してはいけません。

数式の意味
MIN(IF(E2=$B$2:$D$2,COLUMN($B$2:$D$2)))
もし、セルE2とセル範囲$B$2:$D$2が同じ場合、
$B$2:$D$2のセルの行番号を返す。

INDIRECT関数で、文字列を参照式として返します。
INDIRECT関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「検索+行列」の「INDORECT」
http://kiyopon.sakura.ne.jp/kansuu/address.html#indirect
を参照してください。



戻る
0.345という数字を3割4分5厘とい うように表示させたい
TEXT関数を使います。
具体的には、A1セルに数値0.345が入力されているとします。
B1セルに
=TEXT(INT(A1*1000),"0割0分0厘")
と入力します。
表示されたデータは、文字列となりますので計算に利用はできません。
この式では、0.34の場合は、3割4分0厘と表示されてしまいますので、これを3割4分と表示するには、
=IF(MOD(INT(A1*1000),10),TEXT(INT(A1*1000),"0割0分0厘"),TEXT(INT (A1*100),"0割0分"))
と入力します。


戻る
セルに入力した数値を、1桁ずつ右寄せで別のセルに分割し、先頭セルに "\"を表示する
添付ファイルを参照してください。
 
  A B C D E F G H I J K L
1                        
2                        
3                        
4                        
5                        
6                        
7                        
8                        
9     1,234,567 円    
10                        
11         \ 1 2 3 4 5 6 7
セルL11には、
=MID($C$9,LEN($C$9)-(COLUMN($L$11)-COLUMN()),1)
と入力します。

セルK11には、
=IF(LEN($C$9)=(COLUMN($L$11)-COLUMN()),"\",IF(LEN($C$9)<(COLUMN($L$11)-COLUMN()),"",MID($C$9,LEN($C$9)-(COLUMN($L$11)-COLUMN()),1)))
と入力します。
このセルをコピーして、左のセル範囲C11まで貼り付けます。

COLUMN関数でセルの列番 号を返し、最終セルの列番号(この場合L列ですから12)と、数式のセルの列番号との差を計算し、セルに入力した桁数をLEN関数で求め、MID関数でその位置の数値を1文字切り出して表示させるようにしていま す。
セルに入力した桁数をLEN関数で求め、最終セルの列番号(この場合L列ですから12)と、数式のセルの列番号との差が、セルに入力した 桁数をLEN関数で求め、等しい場合は"\"を表示します。
その差が、セルに入力した桁数よりも大きい場合は、何も表示しません。



戻る
関数の計算結果を貼り付けたい
数式のままでなく、値として貼り付けすればいいです。
具体的には、セル範囲を選択し、「編集」「コピー」します。
つぎに、貼り付け先のセルを選択し、「編集」「形式を選択して貼り付け」を選択します。
「形式を選択して貼り付け」ダイアログボックスで、「貼り付け」グループの「値」にチェツクを入れ「OK」ボタンを押します。

戻る
A列の条件に合 致するA列のセルの次に大きい値(次のセル)を返す
配列数式を使います。
 
  A B
1 1.0 2000
2 1.5 2500
3 2.0 4500
4 3.0 2400
5 4.5 3400
6 6.0 1800
7 1.5  
セル範囲A1:A6のデータがA1より大きくて、セル範囲A1:A6の最小のセルの値を返す場合

セルB7には
=MIN(IF(A1:A6>A1,A1:A6))
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。



戻る
A列の条件に合致するB列のセルの2番目に小 さい値を返す
配列数式を使います。
 
  A B C D E F
1 1 2000 1 5000 1 2400
2 2 2500 2 3000 2 1350
3 3 4500 3 6000 3 6250
4 1 2400 1 1500 1 2000
5 2 3400 2 800 2 2000
6 3 1800 3 1570 3 6900
7 2000          
セル範囲A1:A6のデータがA1の場合の、セル範囲B1:B6の2番目に小さい値を返す場合

セルB7には
=SMALL(IF(A1:A6=A1,B1:B6),2)
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

セル範囲A1:A6の値がA1の場合に、セル範囲B1:B6の最小値と、
セル範囲C1:C6の値がA1の場合に、セル範囲D1:D6の最小値と、
セル範囲E1:E6の値がA1の場合に、セル範囲F1:F6の最小値と、
すべての最小値を返す場合は
セルB7に
=SMALL(IF(A1:A6=A1,B1:B6),IF(C1:C6=A1,D1:D6),IF(E1:E6=A1,F1:F6),2)
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。



戻る
A列の条件に合致するB列のセルのMIN, MAXを返す
配列数式を使います。
 
  A B C D E F
1 1 2000 1 5000 1 2400
2 2 2500 2 3000 2 1350
3 3 4500 3 6000 3 6250
4 1 2400 1 1500 1 2000
5 2 3400 2 800 2 2000
6 3 1800 3 1570 3 6900
7 1500          
セル範囲A1:A6のデータがA1の場合の、セル範囲B1:B6の最小値(MIN)を返す場合

セルB7には
=MIN(IF(A1:A6=A1,B1:B6))
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

セル範囲A1:A6の値がA1の場合に、セル範囲B1:B6の最小値と、
セル範囲C1:C6の値がA1の場合に、セル範囲D1:D6の最小値と、
セル範囲E1:E6の値がA1の場合に、セル範囲F1:F6の最小値と、
すべての最小値を返す場合は
セルB7に
=MIN(IF(A1:A6=A1,B1:B6),IF(C1:C6=A1,D1:D6),IF(E1:E6=A1,F1:F6))
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。




戻る
●と入力されたセル以降の○のセルの数を返す
配列数式と、INDIRECT関数を使います。
添付ファイルを参照してください。
ご質問の場合は、セルの値が"○"の数を返すのですが、"●"のセル以降をカウントするのですね。
 
A B C D E
1 2004/1/2  
2 2004/4/5  
3 2004/5/30    
4 2004/6/3      
5 2004/6/17  
6 2004/7/13      
7 2004/7/30    
8 2004/8/1    
9 2004/9/6    
10 2004/9/10    
11 2004/10/25      
12 2004/11/20      
13 2004/12/14    
14 2005/1/4      
15 2005/2/28        
16 2005/3/20      
17 2005/4/7      
18   4 2 6 0
セルB18には
=COUNTIF(INDIRECT("R"&ROW()-1&"C"&COLUMN()&":R"&IF(MAX(IF(B1:B17="●",ROW(B1:B17)))=0,MIN(ROW(B1:B17)),MAX(IF(B1:B17="●",ROW(B1:B17))))&"C"&COLUMN(),FALSE),"○")
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。

INDIRECT関数の説明は「関数の使い方説明」 の「検索+行列」INDIRECTを参照してくだ さい。



戻る
分単位を切り捨てて、時間のみを表示させたい
分のデータを関数で切り捨てします。
参考になる内容が「質問と回答」の「計算式・関数」「2003/7/4」「時間を15分単位で丸めて切り上げ、切り捨て」にあります。

ご質問の場合は、1時間に切り捨てですから、FLOOR関数を使います。
具体的には、
セルA1の時間を1時間に切り捨てするには、
=FLOOR(A1,1/24)
となります。

CEILING関数FLOOR関数の説明は「関数の使い方説明FLOORとCEILINGを参照してください。



戻る
住所を区・市までとそれ以降に分ける方法
私の作成した、「拡張FIND」ユーザー定義関数を使います。
説明はこちら
http://kiyopon.sakura.ne.jp/soft/findx.htm
このソフトを使う場合は、「アドインソフトを使う場合の注意」
http://kiyopon.sakura.ne.jp/soft/addin.html
を必ずお読みください。

具体的には、
A列に住所が入力されているとします。

 
A B C
1 三重県四日市市諏訪町1番5号 三重県四日市市 諏訪町1番5号
2 千葉県市川市八幡1丁目1番1号 千葉県市川市 八幡1丁目1番1号
3 東京都豊島区東池袋1-18-1 東京都豊島区 東池袋1-18-1
B1セルには、住所の市(または区)までを返す
=LEFT(A1,IF(ISERROR(FIND("区",A1,1)),findx("市",A1,4),FIND("区", A1,1)))
C1セルには、住所の市(または区)以降を返す
=RIGHT(A1,LEN(A1)-IF(ISERROR(FIND("区",A1,1)),findx("市",A1,2), FIND("区",A1,1)))
と入力します。
住所に、"市"または"区"が含まれていない場合は、B列は空白となり、C列にすべての住所が返ります。


戻る
氏名を入力し、リストの氏名と性別データ に合致する性別を返す
VLOOKUP関数を使います。
セル範囲C2:D3にリストが入力されているとします。
 
A B C D
1 山田太郎 =VLOOKUP(A2,$C$2:$D$3,2,FALSE) 氏名 性別
2 山田太郎
3 上田ハナコ
C列には、氏名
D列には、性別

セルA1に、検索値として、氏名を
山田太郎
入力します。
セルB1には、数式
=VLOOKUP(A2,$C$2:$D$3,2,FALSE)
を入力します。

リストはいくらでも増やすことができます。
VLOOKUP関数の説明は、「関数の使い方説明」の「検 索+行列」の「VLOOKUP」を参照してくださ い。    



戻る
セルに入力した得点により該当の評価を表示する
A1セルに得点が、入力されているとします。
セルB1に、評価を返す場合
VLOOKUP関数を使って、得点に対する評価のリストを作成しておき、それを参照することができます。

セル範囲A11:B20にA列に得点と、B列に評価のリストをあらかじめ作成しておきます。

 
A B
1 91  10
10 以上 評価
11 0 1
12 10 2
13 20 3
14 30 4
15 40 5
16 50 6
17 60 7
18 70 8
19 80 9
20 90 10
B1セルには、
=VLOOKUP(A1,A11:B20,2,TRUE)
と入力します。
これで、得点に対する評価が返ります。
式の意味
A1セルの値が、セル範囲A11:B20の左端列(この場合A列)と等しいか小さい場合、その2列目(この場合B列)の値を返します。

リストはいくらでも増やすことができます。
VLOOKUP関数の説明は、「関数の使い方説明」の「検 索+行列」の「VLOOKUP」を参照してくださ い。



戻る
2つのセルの文字 列をつなげて一つの文字列にし、間にスペースを入れて見やすくしたい
文字列の結合ですね。
文字列結合関数&(アンパサンド)を使います。

具体的には、
A1セルに、
"ああ"
B1セルに、
"いいい"
と、入力されているとします。
C1セルに、数式
=A1&" "&B1
とします。
"ああ いいい"
が返ります。

文字列結合関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htmの 「文字列関数」の「CONCATENATE  &  」を参照してください。



戻る
3.000 -2.999=0.001を1、5.998-5.996=0.002を2と表示したい
少し難しいです。
FIND関数で文字列"0."の文字位置を返し、その値をLEN関数で求めた数値の桁数から引きます。
(これで、それぞれの数値の小数点以下の桁数が返ります。)
さらに、小数点以下の桁を無くすために、10のべき乗から、二つの数値の小数点以下の桁数の大きい方の桁で合わせます。
(3.000と2.999では、3は小数点以下がありませんので0,2.999は小数点以下が3桁ですから、10^3で、1000倍しま す。)
具体的には、
セルA1に、3.000
セルA2に、2.999
が入力されているとします。
セルA3に、数式
=(A1-A2)*10^(MAX(IF(ISERROR(FIND(".",A1)),0,LEN(A1)-FIND(".",A1)),IF(ISERROR(FIND(".",A2)),0,LEN(A2)-FIND(".",A2))))
と入力します。
ただし、この関数では、小数点を無くしますから計算結果が、0.11のような値で
は、11が返ります。


戻る
1553.55 ×685=1064181.75を1060000と上3桁で四捨五入表示する
INT関数で計算結果の整数部分を返し、LEN関数でその文字数を返し、3桁から引きます。
次にROUND関数で、その桁数で四捨五入します。
具体的には、
A1セルに 1553.55
A2セルに 685
が入力されています

A1*A2 は、1064181.75

INT(A1*A2) で、整数部は 1064181

LEN(INT(A1*A2)) で、その桁数は 7

3-LEN(INT(A1*A2)) で、 -4

=ROUND(A1*A2,3-LEN(INT(A1*A2))) で、 1060000 となります。

それぞれの関数の説明は「関数の使い方説明」http://kiyopon.sakura.ne.jp/kansuu/index.htm
「丸め」の「ROUND
「文字列関数」の「LEN
「数学+三角」の「INT
を参照してください。



戻る
条件を満たすN番目に小さいデータの抽出
添付ファイルを参照してください。

配列数式を使います。

 
A B C D E
1 連番 部署 得意先コード 部署
2 1 003 0006001 001
3 2 002 0006002 小さい  連番
4 3 001 0006003 1 3
5 4 002 0006004 2 5
6 5 001 0006005 3 8
7 6 002 0006006 4
8 7 003 0006007 5
9 8 001 0006008
10 9 003 0006009
セルE4には、部署(D2セル)001で、(D4セル)1番目に小さいA列の連番を返す数式
=SMALL(IF($D$2=$B$2:$B$10,$A$2:$A$10),D4)
と入力し、{Shift}+{Ctrl}+{Enter}で、配列数式として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。
この式をコピーしてしたのセル範囲E8まで貼り付けます。
対象のデータがない場合に、エラーがでないようにするには、
=IF(ISERROR(SMALL(IF($D$2=$B$2:$B$10,$A$2:$A$10),D4)),"",SMALL(IF($D$2=$B$2:$B$10,$A$2:$A$10),D4))
とします。


戻る
[Sheet2]の最新のデータを [Sheet1]に表示する
ご質問の場合は、最新のデータの「列の下端」データを抽出ことが考えられます。
この場合は、「配列数式」を使います。
具体的には、
[Sheet2]に入力データ
 
A B
1 日付 データ
2 2004/10/1 1235
3 2004/10/2 1345
4 2004/10/3 1243
5 2004/10/4 1345
6 2004/10/5 1456
7 2004/10/6 1562
8 2004/10/7 1627
9 2004/10/8 1635
10 2004/10/9 1645
11 2004/10/10 1656
12 2004/10/11 1667
13 2004/10/12 1687
14 2004/10/13 1698
15 2004/10/14 1721
16 2004/10/15 1732
17 2004/10/16 1742
18 2004/10/17 1744
19 2004/10/18 1749
20  
[Sheet1]に最新のデータ(A列の一番下端,B列の一番下端)を返します。
 
A B
1 日付 データ
2 2004/10/18 1749
セルA2には、sheet2のA列のセル範囲(この場合A1:A100)の一番下の行のデータを返します。
=INDIRECT("Sheet2!R"&MAX(IF(Sheet2!A1:A100<>"",ROW(Sheet2!A1:A100)))&"C1",FALSE)
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。
式の意味
ROW関数でA1:A100までのセル範囲のうち、IF関数で入力データがあるセルの、MAX関数で最大の行番号(この場合行番号は、 19)を返します。
INDIRECT関数で、文字列"Sheet2!R"と文字列結合関数&で、算出した行番号と、文字列結合関数&と "C1"を結合して数式とします。
この場合は、"Sheet2!R19C1"
という関数が返ります。

セルB2には、sheet2のB列のセル範囲(この場合B1:B100)の一番下の行のデータを返します。
=INDIRECT("Sheet2!R"&MAX(IF(Sheet2!B1:B100<>"",ROW(Sheet2!B1:B100)))&"C2",FALSE)
と入力し、{Shift}+{Ctrl}+{Enter}で「配列数式」として確定します。
確定後、数式は、{   }でくくられます。
自分で{   }を入力してはいけません。
式の意味
ROW関数でB1:B100までのセル範囲のうち、IF関数で入力データがあるセルの、MAX関数で最大の行番号(この場合行番号は、 19)を返します。
INDIRECT関数で、文字列"Sheet2!R"と文字列結合関数&で、算出した行番号と、文字列結合関数&と "C2"を結合して数式とします。
この場合は、"Sheet2!R19C2"
という関数が返ります。
それぞれの関数の説明は、「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「検索+行列」「ROW」
http://kiyopon.sakura.ne.jp/kansuu/address.html#row
「論理関数」の「IF」
http://kiyopon.sakura.ne.jp/kansuu/if.html#if
「検索+行列」の「INDIRECT」
http://kiyopon.sakura.ne.jp/kansuu/address.html#indirect
を参照しいてください。



戻る
検索結果が複数ある場合も(例えば10 名)すべて表示させたい
いずれにしても、エクセルの標準の仕様には複数の検索結果を返す関数はありません。
しかし、私の作成した「拡張VLookUp」ユーザー定義関数 を使えば、n番目に検索された行の指定列のデータを返します。
エクセルに組み込みのVLOOKUP関数は、指定した範囲の左端列で検索し、発見されたセル同じ行の指定した列に入力されてている値を返 す関数で、指定した列で最初に発見したデータしか返しませんが、この「拡張VLoopUp」関数は、n番目に見つかった行のデータを返します。
説明はこちら
http://kiyopon.sakura.ne.jp/soft/vlookupx.htm
このソフトを使用する前に、「アドインソフトを使う場合の注意点」http://kiyopon.sakura.ne.jp/soft/addin.htmlを 必ずお読みください。




戻る
小 数点以下2位の値が0.00超過〜0.05以下の時、0.05とし、0.05超過〜0.10以下の時0.10としたい
小数点以下2桁での0.05単位の切り上げですね。
この場合は、CEILING関数を使います。
具体的には、セルA1に数値が、
0.53と入力されているとします。
セルB1に、
=CEILING(A1,0.05)
と入力します。
0.55が返ります。
0.56の場合、0.60と小数点以下の最下位を0で表示するには、セルを選択し、「書式」「セル」「セルの書式設定」ダイアログボック スで、「表示形式」の「分類」で、「数値」を選択し、「小数点以下の桁数」に「2」を指定し、「OK」ボタンを押します。
CEILING関数の説明は、「関数の使い方説明」の、 「丸め」「FLOORとCEILING」を参照してください。


戻る
A1-A2=A3 の式にA2が空白or0だった場合はセルA3には0または表示しない
IF関数を使います。
A3セルには
=if(A2=0,"",A1-A2)
とします。
また、A1セルまたはA2のいずれかが0の場合には、A3セルに計算結果を表示しないようにする場合
=IF(or(A1=0,A2=0),"",A1-A2)
とします。

IF関数の説明は、「関数の使い方説明
の「論理関数」「IF」
http://kiyopon.sakura.ne.jp/kansuu/if.html#if
を参照してください。



戻る
2行おきの足算について
関数では、次のようになります。
行番号を返すROW関数と、わり算の余りを返すMOD関数をIF関数と組み合わせて、配列数式で使います。
セル範囲A1:A12に数値が入力されているとします。

セル範囲A1:A12のうち奇数行のセルの合計を返す場合
=SUM(IF(MOD(ROW(A1:A12),2)=1,A1:A12))
と入力し{Ctrl}+{Shift}+{Enter}で、「配列数式」として確定します。
確定後数式は、{   }でくくられます。
自分で{  }を入力してはいけません。

セル範囲A1:A12のうち偶数行のセルの合計を返す場合
=SUM(IF(MOD(ROW(A1:A12),2)=0,A1:A12))
と入力し{Ctrl}+{Shift}+{Enter}で、「配列数式」として確定します。
確定後数式は、{   }でくくられます。
自分で{  }を入力してはいけません。

ROW関数の説明は、「関数の使い方説明
の「検索+行列」の「ROW」
http://kiyopon.sakura.ne.jp/kansuu/address.html#row
MOD関数の説明は、「数学+三角」の「MOD」
http://kiyopon.sakura.ne.jp/kansuu/abs.html#mod
IF関数の説明は、「論理関数」の「IF」
http://kiyopon.sakura.ne.jp/kansuu/if.html#if
を参照してください。

他の方法として、
私の作成した「拡張SUMユーザー定義関数」
を使えば1行おきや2行おきの足し算が簡単にできます。
説明はこちら
http://kiyopon.sakura.ne.jp/soft/sumx.htm
「拡張SUMユーザー定義関数」を使う場合は、必ずアドインソフトを使う場合の注意点
http://kiyopon.sakura.ne.jp/soft/addin.html
をお読みください。



戻る
” 万”単位にして、その中の1の位を”0”にしたい。10393654.7377446→1,030
ご質問の場合は、万単位にして1の位を切り捨てするのですね。
計算式によって、入力セルとは違うセルに表示することになります。
10393654.7377446→1,030とするには、
セルA1に、数値
10393654.7377446
が入力されているとします。
セルB1に、数式
=ROUNDDOWN(A1/10000,-1)
と入力します。
数値として
1,030
が返ります。

ROUNDDOWN関数は、数値をしてい桁で切り捨てます。
ROUNDDOWN関数の説明は、「関数の使い方説明」の 「丸め」ROUNDDOWNを参照してください。



戻る
選択した範囲を一度に2割増しにする方法
関係のないセルに
1.2
と入力します。
そのセルを選択して「コピー」します。
1.2倍にしたいセル範囲を選択します。
「編集」「形式を選択して貼り付け」を選択し、「演算」の「乗算」のボタンを押し、「OK」ボタン押します。


戻る
数値「01001」を0分10 秒01のように(分の前の0も)表示したい
A1セルに01001と入力すると、先頭のゼロはなくなり1001と認識されます。
このため、入力セルを選択し、セルの書式設定で「表示形式」の分類を「文字列」とします。
別のセル(たとえばB1セル)に
=TIMEVALUE("00:"&LEFT(A1,2)&":"&MID(A1,3,2)&"."&RIGHT(A1,2))
という計算式を入力します。
左から2桁を分とし、3文字めから2文字を秒として、右から2桁を1/100秒となります。
B1セルを選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアログで「表示形式」の「分類」で、「ユーザー定義」を選択し、 「種類」欄に「mm:ss.00」と入力すれば、01:00.01と表示されるはずです。
時刻を01001と入力すれば先頭のゼロも含めて認識されますので、正しく0分10秒01となります。
この数値は、「時刻シリアル値」として、時刻計算に使えます。
時刻シリアル値は、1日を1とした数値で、24時間が1です。
60分は1/24です。


戻る
亡くなった日を入力して年回忌表を作りたい
法要は亡くなった日を含めて七日目ごとになります。
年回忌は
故人が亡くなった命日といい、翌年の命日に一周忌の法要を営みます。その翌年、つまり2年目は三回忌となり、以後は亡くなった年を入れて 数え、7年目が七
回忌、そして十三回忌、十七回忌、二十三回忌、三十三回忌、五十回忌と続きます。
関数としては、足し算になります。
日付は、日付シリアル値として1にちが1ですから、そのまま日数を加算すればいいわけです。

見本のファイル

 
A B 数式
1 年回忌表
2 死亡 2004/10/10(日) セルB2になくなった日を2004/10/10と、入力します。
3
4  初七日忌 2004/10/16(土) =$B$2+(7*1)-1
5 二七日忌 2004/10/23(土) =$B$2+(7*2)-1
6 三七日忌 2004/10/30(土) =$B$2+(7*3)-1
7 四七日忌 2004/11/6(土) =$B$2+(7*4)-1
8 五七日忌 2004/11/13(土) =$B$2+(7*5)-1
9 六七日忌 2004/11/20(土) =$B$2+(7*6)-1
10 四十九日忌 2004/11/27(土) =$B$2+(7*7)-1
11 百ヵ日忌 2005/1/17(月) =$B$2+100-1
12 一周忌 2005/10/10(月) =DATE(YEAR($B$2)+1,MONTH($B$2),DAY($B$2))
13 三回忌 2006/10/10(火) =DATE(YEAR($B$2)+2,MONTH($B$2),DAY($B$2))
14 七回忌 2010/10/10(日) =DATE(YEAR($B$2)+6,MONTH($B$2),DAY($B$2))
15 十三回忌 2016/10/10(月) =DATE(YEAR($B$2)+12,MONTH($B$2),DAY($B$2))
16 十七回忌 2020/10/10(土) =DATE(YEAR($B$2)+16,MONTH($B$2),DAY($B$2))
17 二十三回忌 2026/10/10(土) =DATE(YEAR($B$2)+22,MONTH($B$2),DAY($B$2))
18 二十七回忌 2030/10/10(木) =DATE(YEAR($B$2)+26,MONTH($B$2),DAY($B$2))
19 三十三回忌 2036/10/10(金) =DATE(YEAR($B$2)+32,MONTH($B$2),DAY($B$2))
20 三十七回忌 2040/10/10(水) =DATE(YEAR($B$2)+36,MONTH($B$2),DAY($B$2))
21 五十回忌 2053/10/10(金) =DATE(YEAR($B$2)+59,MONTH($B$2),DAY($B$2))
22 百回忌 2104/10/10(金) =DATE(YEAR($B$2)+99,MONTH($B$2),DAY($B$2))
日付を曜日とともに表示するために、日付のセル(B2,B4:B22)を選択し、「書式」「セル」を選択し、「セルの書式設定」ダイアロ グボックスで「表示形式」の「分類」で、「ユーザー定義」を選択し「種類」欄に「yyyy/m/d(aaa)」と入力し「OK」ボタンを押します。
YEAR関数は日付シリアル値の"年"を返します。
MONTH関数は日付シリアル値の"月"を返します。
DAY関数は日付シリアル値の"日"を返します。
DATE関数は、指定した日付に対応するシリアル値を返します。

それぞれの関数の説明は、「関数の使い方説明」の 「日付+時刻」の
http://kiyopon.sakura.ne.jp/kansuu/date.html#year
http://kiyopon.sakura.ne.jp/kansuu/date.html#month
http://kiyopon.sakura.ne.jp/kansuu/date.html#day
http://kiyopon.sakura.ne.jp/kansuu/date.html#date
を参照してください。



戻る
データーが何種類か調べたい
COUNTIF関数を使います。
 
A B C
1 -10 1
2 -100 1
3 -20 1
4 -30 1
5 -10 2
6 -30 2
7 -100 2
8 -110 1
9 -20 2
10  -30 3
11 合計 5 種類
セルB1には、
=COUNTIF($A$1:A1,A1)
と入力し、下のセル範囲B10まで貼り付けます。
セルB11には、
=COUNTIF(B1:B10,1)
と入力します。
COUNTIF関数の説明は「関数の使い方説明」
http://kiyopon.sakura.ne.jp/kansuu/index.htm
の「統計関数」「COUNTIF」
http://kiyopon.sakura.ne.jp/kansuu/abs.html#countif
を参照してください。


戻る
田畑の反別で 1212m2を  ?町 ?反 ?畝 ?歩 と表したい
基本単位は、下の表の値とします。
 
歩(坪) 1平方間 3.3058m2
30歩 99.174m2
段(反) 300歩,  10a 991.74m2
3000歩 9917.4m2
 
見本のファイルを参照してください。
 
 
A B C D E F
1 氏名 住所 m2
反別
2 太郎 兵庫県 1212 1反 2畆 7歩
セルD2には、セルC2の数値の"反"の数値を返します。
=INT(IF(C2>991.74,C2/991.74))
と入力します。
セルの書式設定で、「表示形式」の「分類」で、「ユーザー定義」を選択し、「種類」欄に「#"反";;」と入力し、「OK」ボタンを押します。

セルE2には、セルC2の数値の"畆"の数値を返します。
=IF(C2=0,0,IF(IF(C2-D2*991.74>99.174,INT((C2-D2*991.74)/99.174))=FALSE,0,IF(C2-D2*991.74>99.174,INT((C2-D2*991.74)/99.174))))
と入力します。
セルの書式設定で、「表示形式」の「分類」で、「ユーザー定義」を選択し、「種類」欄に「#"畆";;」と入力し、「OK」ボタンを押します。

セルF2には、セルC2の数値の"畆"の数値を返します。
=IF(C2=0,0,IF(IF(C2-D2*991.74-E2*99.174>(1/3),INT((C2-D2*991.74-E2*99.174)/3))=FALSE,0,IF(C2=0,0,IF((C2-D2*991.74-E2*99.174)>(1/3),INT((C2-D2*991.74-E2*99.174)/3)))))
と入力します。
セルの書式設定で、「表示形式」の「分類」で、「ユーザー定義」を選択し、「種類」欄に「#"歩";;」と入力し、「OK」ボタンを押します。
お試しください。




戻る
データをランダムに並び替えたい
並べ替えのために、新しい列に重複しない乱数を発生させます。
その方法の説明は、「質問と回答」の「計算式・関数」「2004/8/2」
重複しない乱数を複数セルに返す」にあります。
その内容
見本のファイル
http://kiyopon.sakura.ne.jp/situmon/kaitou/1-50ransu.xls
ではA列に1-50までの重複しない乱数を返します。
{F9}ボタンを押すと再計算によって、新しい乱数が返ります。

このファイルでは、RANDBETWEEN関数を利用しますので、「ツール」「アドイン」で「分析ツール」にチェックを入れてくだ さい。
そうしないとセルE2:E2000に#VALUEエラーが返り、正しく計算できません。

開始値と、終了値を指定した乱数を返す関数は、=RANDBETWEEN(開始値,終了値)です。
しかし、複数のセルにこの関数を使用すると重複した値が返ってしまいます。
重複しない乱数を返すには、複数セルの乱数が重複しているかをCOUNTIF関数で判定します。重複していなければ、1が返ります。
重複していない乱数は、COUNTIFで、1が返ったセルの値です。
これを、VLOOKUP関数で1から50まで抽出すれば、重複しない乱数が返ります。
VLOOKUP関数で、対象の検索値に該当データがない場合エラー値#N/Aが返らないように、IF関数を組み合わせて""を返すように しています。

この乱数の列でデータを並べ替えすれば、ランダムにデータが並べ替えられます。

計算式の入力後、
セル範囲A1:C51のいずれかのセル範囲を選択し、「データ」「並べ替え」を選択し、「並べ替え」ダイアログボックスで、「優先される キー」に、C列の「並替
乱数」の項目を選択し、「昇順」あるいは「降順」のラジオボタンを選択し、「範囲の先頭行」で「タイトル行」が選択されていることを堪忍 して、「OK」ボタンを押します。
以降の並べ替えには、「データ」「並べ替え」を選択し、「OK」ボタンを押だけで、ランダムな並べ替えが何度でも可能です。
元の並べ替えに戻す場合は、「データ」「並べ替え」で、A列の「連番」に対して並べ替えます。

1-100までのデータ並べ替えの見本のファイル



戻る
セルの電話番号が、別の シートの60個の番号と同じならその横のセルに○を表示
重複データを検索するのと同じですね。

COUNTIF関数を使います。
具体的には、
シート[Sheet1]のセル範囲A1:A4000にデータが入力してあるとします。
 
A
1 012-345-6789
2 012-345-6790
3 012-345-6791
4 012-345-6792
5 012-345-6793
6 012-345-6794
7 012-345-6795
8 012-345-6796
9 012-345-6797
10 012-345-6798
11 012-345-6799
・・・
4000

シート[Sheet2]のセル範囲A1:A60に検索値のデータが入力してあるとします。
 
A
1 012-345-6799
2 012-345-6800
3 012-345-6792
4 012-345-6795
5 012-345-6796
6 012-345-6797
7 012-345-6798
8 012-345-6799
9 012-345-6800
10 012-345-6801
11 012-345-6802
・・・
60
シート[Sheet1]のセルB1に
=IF(COUNTIF(Sheet2!$A$1:$A$60,A1)>0,"○","")
と入力します。
この式の意味
COUNTIF(Sheet2!$A$1:$A$60,A1)
Sheet2のセル範囲$A$1:$A$60の値と、セルA1の値が等しい場合はそのセルの数を返します。(等しいものがある場合は1以 上が返ります。)
IF関数と組み合わせて0より大きい場合は"○"を返します。


戻る
ファイルを開いた日のそ の月の土・日・祭を除いた月の初日(平日)をもとめたい
エクセルでは、日付の土日を判定する関数はありますが、祭日の判定は難しいです。
別のセルに祭日の日付を入力しておき、その日付に該当するかどうかをCOUNTIFで判定すれば可能です。
私の作成した「休日後」 ユーザー定義関数
http://kiyopon.sakura.ne.jp/soft/qjitumae.htm
を使えば簡単にできます。

書式
=休日後(DATE(YEAR(TODAY()),MONTH(TODAY()),1))

このソフトを開く前に「アドインソフト使用上の注意」
http://kiyopon.sakura.ne.jp/soft/addin.html
を必ずお読みください。



戻る
A1〜A30までが空白であるという式は
いろいろな方法があります。

A1:A30に、数値が入力される場合は、SUM関数を使って
=SUM(A1:A30)
で、0が返れば、すべて空白です。

A1:A30が、数値や文字の場合は
COUNTA関数を使って
=COUNTA(A1:A30)
で、0が返れば、すべて空白です。

A1:A30が、数値や文字の場合は
COUNTBLANK関数を使って
=COUNTBLANK(A1:A30)
で、30が返れば、すべて空白です。