エクセルのことでお伺いします。
today関数で今日の日付を表示することは理解しました。
そしてそこから日付の「月」だけを取り出すのにmonth関数があるというのも理解できました。

そこで取り出した月の整数は1~12までなんですがその取り出した関数に対して数字を1引きたいときに単純に関数から-1の計算式を当てはめると明治33年~とおかしくなってしまいました。正しくするにはどうしたらよいですか?

僕がやったのは
今日の場合
A1に=TODAY()関数をいれ、平成17年4月19日を表示させました。
A2に=MONTH(A1)として4を出しました。
そこの関数に=MONTH(A1)-1で4-1で3を出したかったのです。

シリアル値って言うのが引っかかっているみたいですが
よく分かっていないので正しく教えていただける方がいましたら宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

日付のセルを参照しているからその月を出すセルも日付の書式に自動処理されてしまうのが問題のようです。


=MONTH(TODAY())-1
と一つのセルにまとめるか、MONTHの入っているセルの関数を手動で標準に設定すれば解決するかと思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。書式が変わっているのは分かりませんでした。助言ありがとうございました。

お礼日時:2005/04/19 17:02

セルの書式が日付になっていませんか?


セルの書式を「標準」にしてみましょう。
    • good
    • 0
この回答へのお礼

ありがとうございました。最初A1の方を標準に直してしまい余計に分からなくなりましたが次の方の助言でA2の方を直すとわかって解決しました。

お礼日時:2005/04/19 17:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルの下記表について答えを導く関数式とは?

 下記のような形式の車種別の生産予定表があるとします。


  A   B  C  D  E  F  G  
1車種 4/1 2  3  4  5  6日  
2車1  20    30 50
3車2     60 80
4車3              40
5車4  50
6車5     40 30   
7車6              70 10台

 のような少ロットで変動の多い生産予定表について
 4月X日の車Xの生産数を知るにはINDEX+MATCH関数、VLOOKUP+MATCH関数で表を縦横に検索すれば交差するセルの台数を返しますが、仮に台数が分かっているとして、逆の論理として
 車1の生産があった日が4月1日、3日、4日であるという生産対象日を返したい。
 4月3日の生産は車1、車2、車5であるという車種名を返したい。

 これを出来るように関数式を考えていますが、上手く答えを出せません。セルに返る戻り値が一つではありません。
一つの関数式では無理なんでしょうか?VBAが分からないので関数で出せると助かるのですが、方法がありましたら、どなたかご教導お願い申し上げます。
 
 
 

 下記のような形式の車種別の生産予定表があるとします。


  A   B  C  D  E  F  G  
1車種 4/1 2  3  4  5  6日  
2車1  20    30 50
3車2     60 80
4車3              40
5車4  50
6車5     40 30   
7車6              70 10台

 のような少ロットで変動の多い生産予定表について
 4月X日の車Xの生産数を知るにはINDEX+MATCH関数、VLOOKUP+MATCH関...続きを読む

Aベストアンサー

既存の関数のみで行う場合、結果は連続した文字列として1個のセルに表示することになります。単純化のため、ご例示のシートをさらにコンパクトにします。カラムが揃わない場合、メモ帳に貼り付けてご覧ください。

*| A|B|C|D|E|
1|  |1|2|3|
2|車1|4|3| |
3|車2|7| | |
4|車3| | |5|
5|

E2に定義
=IF(B2<>"",$B$1&" ","")&IF(C2<>"",$C$1&" ","")&IF(D2<>"",$D$1&" ","")
以下、E4まで下へドラッグ

B5に定義
=IF(B2<>"",$A$2&" ","")&IF(B3<>"",$A$3&" ","")&IF(B4<>"",$A$4&" ","")
以下、D5まで右へドラッグ

結果
*| A|   B|  C|   D|E |
1|  |   1|  2|   3| |
2|車1|   4|  3|    |1 2 |
3|車2|   7|   |   3|1 3 |
4|車3|    |   |   5|3 |
5|  |車1 車2|車1 |車2 車3|  |

実際のシートの縦横の大きさはいかほどでしょうか。「数式バー」で編集可能な文字列の長さには限りがあります。この方法では実用に耐えない場合、VBAマクロでユーザ定義関数を作成しセルでそれを参照するという方法を検討してください。

既存の関数のみで行う場合、結果は連続した文字列として1個のセルに表示することになります。単純化のため、ご例示のシートをさらにコンパクトにします。カラムが揃わない場合、メモ帳に貼り付けてご覧ください。

*| A|B|C|D|E|
1|  |1|2|3|
2|車1|4|3| |
3|車2|7| | |
4|車3| | |5|
5|

E2に定義
=IF(B2<>"",$B$1&" ","")&IF(C2<>"",$C$1&" ","")&IF(D2<>"",$D$1&" ","")
以下、E4まで下へドラッグ

B5に定義
=IF(B2<>"",$A$2&" ","")&IF(B3<>"",$A$3&" ","")&IF(B4...続きを読む

Qエクセルで、=IF(A12="a",TRUE)は =A1="a"  ???

エクセルで、
=IF(A12="a",TRUE)

=A1="a"
と省略できるのですか?

やってみるとまったく同じようなのですが、いまいち不安です。

また、=IF(D4=TRUE,"OK!","No!")も、日頃=IF(D4,"OK!","No!")と略してますが、これも正しいんですよね?
気になったものですから確認させてください。

Aベストアンサー

こんにちは。maruru01です。

IF関数について、少し補足説明します。
IF関数は、No.1にもあるように、

=IF(条件式,真の場合,偽の場合)

という書式ですが、

=IF(条件式,真の場合)

と、偽の場合を省略することが出来ます。
ここで偽の場合は、FALSEという論理値を返します。
つまり、質問欄の1つ目の例に当たります。
なお、

=IF(条件式)

と、真の場合も省略することは出来ず、

=IF(条件式,,偽の場合)

と、空欄にすると、真の場合は数値の「0」を返すことになります。
ちなみに、偽の場合も、

=IF(条件式,真の場合,)

と、引数区切りのカンマだけ付けると、空欄と見なされて(省略とは異なる)数値の「0」を返します。

次に、条件式についてですが、
条件式は、

「左辺」+「比較演算子」+「右辺」

の書式になっているものを指します。
ここで、比較演算子とは、
「=、>、<、>=、<=、<>」
を指します。
条件式は、成立/不成立の結果、TRUE/FALSEという論理値を返します。
つまり、

=A1="a"

は、条件式の戻り値そのものを表示していることになります。
それに対して、IF関数の方は、条件式を判定した結果、真の場合と偽の場合をそれぞれ実行して表示しています。
その真の場合と偽の場合が、条件式の戻り値とちょうど一致しているということです。

さて、IF関数の第1引数は、通常は上記の条件式を指定しますが、実際はIF関数は第1引数を数値として判断しています。
その判定基準は、第1引数が、
0 → 偽の場合を実行
0以外 → 真の場合を実行
となります。
そして、第1引数が条件式の場合に限り、戻り値の論理値を、
TRUE → 1
FALSE → 0
と数値に変換して判定しているのです。
これが、質問欄の後半の2つの数式の挙動の違いの原因なのです。

=IF(D4=TRUE,"OK!","No!")

は、第1引数は「D4=TRUE」という条件式です。
この場合、戻り値は必ずTRUE/FALSE(=1/0)です。
(ただし、D4にエラーが入っている場合を除く)
一方、

=IF(D4,"OK!","No!")

の方は、第1引数は「D4」で、これはセルD4の値そのものです。
で、前述のように、IF関数は第1引数を数値として判定するので、このD4が数値(と論理値)以外の場合(文字列など)はエラーになります。
D4が数値(と論理値)の場合は、前述のように、「0」かそれ以外かで判定され、真/偽の場合のいづれかを実行して表示します。

このIF関数の第1引数が数値として判定されているということを利用した例が以下のようなものです。
例えば、A列に数値が1つでもあれば"OK"、1つもなければ(つまり0)"NG"を表示する場合、意味を考えれば、

=IF(COUNT(A:A)>0,"OK","NG")

ですが、これを、

=IF(COUNT(A:A),"OK","NG")

と、A列の数値の個数(COUNT関数の戻り値)そのもので判定することが出来るわけです。

以上、長くなりましたが、補足説明でした。

こんにちは。maruru01です。

IF関数について、少し補足説明します。
IF関数は、No.1にもあるように、

=IF(条件式,真の場合,偽の場合)

という書式ですが、

=IF(条件式,真の場合)

と、偽の場合を省略することが出来ます。
ここで偽の場合は、FALSEという論理値を返します。
つまり、質問欄の1つ目の例に当たります。
なお、

=IF(条件式)

と、真の場合も省略することは出来ず、

=IF(条件式,,偽の場合)

と、空欄にすると、真の場合は数値の「0」を返すことになります。
ちなみに、偽...続きを読む

Qエクセルの関数にて【今日の日付から3ヶ月後の日付を入力する関数とは?】

3ヶ月ごとに更新する契約書を作成しています。
ある日付からちょうど3ヶ月後の一日前が出るような関数を探しています。

例えば、
セルに今日の日付「9月6日」と入れると、そのとなりのセルには契約の切れる「12月5日」が出るようにしたいのですが、うまい具合に出来ません。

GOOの賢人様方、お知恵をお貸しください!

Aベストアンサー

アドインで分析ツールが組み込まれている場合は

=EDATE(A1,3)-1

そうでない場合は

=DATE(YEAR(A1),MONTH(A1)+3,DAY(A1))-1

ただし、11月30日をA1に入力した場合、答えが3月1日になってしまうようです。
(うるう年であれば2月29日となりOK)

QA1に今日の日付 A2に「=jis(a1)」と入力 → 「39414」 の解消方法を

【エクセル2003の質問】

いつもお世話になってます。

A1に今日の日付が入力されています。
「平成19年11月28日」と表示されています。
※実際は数字は半角で表示されている。

全角で日付を表示させたいので、

A2に「=jis(a1)」と入力してA1の日付を全角で表示するよう企んだところ、「39414」と表示されてしまいました。

全角で日付を表示させたいのですが、どうすればよいのでしょうか?

ご教示のほどよろしくお願いします。

Aベストアンサー

Excel では、日付を連続したシリアル値として処理することで、日付の計算が行われています。既定では、1900 年 1 月 1 日がシリアル値 1 として保存されます。2007 年 11 月 28 日は 1900 年 1 月 1 日から 39,414 日後に当たるので、シリアル値は 39,414 になります。

QエクセルのSAM関数の「SAM」とは何かの略語なのでしょうか?

エクセルのSAM関数の「SAM」とは何かの略語なのでしょうか?
例えば、MAX関数であれば「MAX」が日本語で「最大値」だと分かります。
「AVERAGE」であれば、「平均」です。
詳しい方がいましたら、宜しくお願い致します。

Aベストアンサー

SUM は、最初、SUMMARY だと私も思っていました。しかし、Summary には、「合計」という意味はなく、要約するという意味です。現在、私自身は、数学用語の、SUMMATION =Σ (総和、合計)という語の省略形だと思っています。

Summation (サメイション) [数学用語]
the total amount or number when two or more things are added together.
[2つまたはそれ以上のものを一緒に加えた時に、その合計値または数値のこと]

ただ、この命名は、Microsoft ともロースタ社とも関係がなく、1970年代の後半、ハーバード大学ビジネススクールの学生、ダンブルックリンらによるもので、彼らはパテントなどの主張も出来ずに、大手の会社に取り入れられてしまい、その時のものが現在まで流用されています。したがって、誰も、その語源に対して主張ができません。

1980年代に、IBMから出ていた表計算の本に、SUM関数の出来た秘話も読んだことがあります。学生さんが、教授が、授業中に何度も黒板を書いたり消したりするのをみて、PCで、できたらと考えたそうです。当時、すでに大型コンピュータには表計算は存在していましたが、PCにはありませんでした。計算範囲の中に、文字列を入れても、エラーを出さずに、合計が出せるという所が、この関数の特徴です。

SUM は、最初、SUMMARY だと私も思っていました。しかし、Summary には、「合計」という意味はなく、要約するという意味です。現在、私自身は、数学用語の、SUMMATION =Σ (総和、合計)という語の省略形だと思っています。

Summation (サメイション) [数学用語]
the total amount or number when two or more things are added together.
[2つまたはそれ以上のものを一緒に加えた時に、その合計値または数値のこと]

ただ、この命名は、Microsoft ともロースタ社とも関係がなく、1970年代の後半、ハーバード大学...続きを読む

Q=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $

いつもお世話になってます。
以下の関数式について、お時間がありましたらどうぞご教示ください。

=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $12,2,FALSE))

「シート2の範囲指定した表にA1セルの値と同じ値の右隣になる値を返せ。ただし該当なき場合は空白とせよ。」

純粋になんでこのような構文になるのかが解りません。

1.ISNAってそもそもなんでしょう?
2.同じ式を繰り返すのはなぜ?
(模範式で、このように同じ式を繰り返す構文があまり無いように思えたのです。)

・参考となる他所のページがあれば教えて下さい。
・素人です。お手柔らかにお願いします。

(エクセル2003)

Aベストアンサー

1.ISNAってそもそもなんでしょう?
ISで始まる情報関数の一つで、#N/A!エラーのみを判定する関数
結果はTRUE(真),FALSE(偽)のいずれかになります。
エラー判定のIS関数には他に
ISERR:#N/A!を除くすべてのエラーを判定する関数
ISERROR:すべてのエラーを判定する関数
があります。

2.同じ式を繰り返すのはなぜ?
ISNAの判定する値がセルでなく数式の結果だからです。
A2=VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)
なら
A3=IF(ISNA(A2),"",A2)
ということになります。A2のように計算の為のセルを省略する為に
=IF(ISNA(数式),"",数式)のように同じ数式を2回繰り返しになってます。

Qエクセル関数で使われる10^10とは何でしょうか。

エクセル関数で使われる10^10とは何でしょうか。

他の教えて!gooで書かれていた数式を用いてデータ取得には成功したのですが
関数の内容が知りたいのでわかるかたお願いします。

参考アドレス: http://oshiete.goo.ne.jp/qa/6085476.html
(以下参照文)
----------------------------------------------------------
例えばA1セルからE1000セルの間で数値の入っている下端のデータであれば次のように作業列を設けて求めることができます。
初めに1行目に新たな行を挿入します。
A1セルには次の式を入力してE1セルまでオートフィルドラッグします。

=MATCH(10^10,A2:A1000)+1

----------------------------------------------------------

上記に出てくる10^10は何を表わしているのでしょうか。。
どうぞよろしくお願いいたします。

Aベストアンサー

10^10とは10の10乗で100億です。

=MATCH(10^10,A2:A1000,1)

100億より小さい数字で最大のものを求めるということで、その表で最大値が決まっていれば、それより大きい数字であれば何でもOKです。

ちなみに、MATCH関数で、照合の型に 1又は省略の場合、昇順になっていない場合、検索値より小さいもので、一番下のものの位置を返します。

QExcelでの表編集でC1に =IF(A1="",B1,A1)

Excelでの表編集でC1に =IF(A1="",B1,A1)
と以前文字データのある列A1、B1、2つからそれぞれ穴あき
を補いc1に表示する式=IF(A1="",B1,A1)を教えていただいたのですが
2列まではこの式で行けるのですが3列以上に対応させる記述が
分かりません。
3列以上の表示を一列にまとめる式を教えてください。
お願いします。

Aベストアンサー

条件が良く判りませんが?

セルB1が空白のとき、セルC1をセルD1に表示
という条件を追加すると
=IF(A1="",IF(B1="",C1,B1),A1)

こんな感じですが、イメージと違う場合は補足してください。

Qワークシート関数とはどのことなのですか?

【1】エクセルのワークシート上で使う=TODAY()などの関数

【2】VBAのCountなどのWorksheetFunction

【3】VBAのLENなどの関数

どれのことを俗に言う「ワークシート関数」と言うのでしょうか?
VBAで使う【2】【3】のことですか?

Aベストアンサー

ワークシート上で使う関数のこと。つまり1です。

Q=IF(A1<10,TEXT(A1,"0.0"),A1) に<1の時を加えたい

よろしくお願いします。いつもお世話になっています
エクセルは2013です
下記の式1と式2を1つの式で表現したいのですが、どう書いたらいいでしょうか
なんか無理そうな気がしますが、方法があれば教えてください

式1
=IF(A1<10,TEXT(A1,"0.0"),A1)
式2
=IF(A1<1,TEXT(A1,"0.00"),A1)

Aベストアンサー

=IF(A1<1 ,TEXT(A1,"0.00") ,IF(A1<10 ,TEXT(A1,"0.0") ,A1) )

「1より小さい」の条件が成立していなければ、そのまま「10より小さい」の条件で比較。


人気Q&Aランキング