- ベストアンサー
エクセルの計算
日付の計算をしています。 最初は、例えば、2002/6/30から2002/6/1を引くというような 簡単な計算だったのですが、6/30の後ろに(6/25)が付くようなことに なりました。この()はセルによってあったりなかったり、と言う感じです。 計算方法は以前のままで、()内の日付は無視するというような ことはできるのでしょうか? まったくの初心者なので困っています。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
カッコが付く日付を隣のセルにするしかないですね。ちょっと面倒かもしれませんがその方が表としてもすっきりすると思いますよ。それに別のセルにすればカッコを自動入力することもできるので逆に簡単になるんじゃないでしょうか。
その他の回答 (2)
- nishi6
- ベストアンサー率67% (869/1280)
今の算式、日付1-日付2 を 日付1(日付A)-日付2(日付B) 日付1(日付A)-日付2 日付1 -日付2(日付B) 日付1 -日付2 の4種類に対応させる必要がある? 今まで、A1とB1に日付があって、例えば、C1に =A1-B1 があったとします。この代わりに =LEFT(A1,FIND("(",ASC(A1&"("))-1)-LEFT(B1,FIND("(",ASC(B1&"("))-1) とします。 算式は、 1.()付きの日付があるとは限らないので、'('を付加した文字にして、FINDで'('の位置を探します。 2.その時'('が全角か半角が不明なのでASCで半角文字にしています。 3.'('の位置の前までを、LEFTで取り出しています。 この時、元が()付きの日付なら、yyyy/mm/dd の文字列が取り出され、 元が普通の日付なら、日付連番(数値)が取り出されます。 この2つは数値として加減できることになります。
お礼
他の方にも書いたように、質問したこと自体意味がなくなってしまいました。 それはともかく、ややこしい質問に対して式を考えてくださって感謝しています。ありがとうございました。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 No.1の人の言うように、()内を隣のセルに移した方がいいです。 しかし、どうしてもそのままで、ということであれば以下の式で出来ます。一応。 仮に、 A1 = 2002/6/30 (6/25) B1 = 2002/6/1 として、日数の差をC1に出すとすると、C1に、 =DATEVALUE(LEFT(A1,FIND("(",A1,1)-1))-B1 とします。 ただし、FIND関数は""内の文字の位置を見つける関数で、全角と半角を区別しますので、A1のかっこが、全角なら全角、半角なら半角を""内に指定して下さい。 では。
お礼
ご回答ありがとうございます。 やはり私にはまったく理解できないような式を組まなくてはいけないんですね。 これから勉強します。
お礼
速攻のご返答ありがとうございました。 結局()内を採用するということで落ち着いてしまい、質問したこと自体意味が なくなっちゃいました。
補足
今回は早い順に回答してくださった方にそれぞれポイントを差し上げたいと思います。 でも本当はお三方に差し上げたいのです。ありがとうございました。