Excel IFの重複 #value!エラーが出る

このQ&Aのポイント
  • ExcelのIF関数を重複させた場合、和暦を西暦に変換する関数で#value!エラーが発生します。
  • 現在の関数では昭和の変換はできますが、平成の変換がうまくいかず、エラーが発生しています。
  • エラーの原因については調査中ですが、解決策はまだ見つかっていません。
回答を見る
  • ベストアンサー

Excel IFの重複 #value!エラーが出る

こんにちわ。 ExcelでIF関数を重複させ(IFの中にIF)、和暦(昭和等)を西暦に変更する関数を作っています。 和暦は昭和、平成のみで、昭和50年ならば昭50のように打ち込み、 =IF(FIND("昭",A1),SUBSTITUTE(A1,"昭",)+1925,IF(FIND("平",A1),SUBSTITUTE(A1,"平",)+1989,)) このように昭和、平成を判断して西暦に変換しようとしています。 が、この関数では昭和の変換はできますが、平成の変換(平23→2011等)を試すと #value!エラーとなってしまいます。 調べたのですがエラーの原因がわかりません。 どなたかご教示ください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

FINDでなくCOUNTIFを使用すれば =IF(COUNTIF(A1,"昭*"),SUBSTITUTE(A1,"昭",)+1925,IF(COUNTIF(A1,"平*"),SUBSTITUTE(A1,"平",)+1989,)) 昭和、平成でいいなら、こういう方法もあります。 =YEAR(DATEVALUE(SUBSTITUTE(SUBSTITUTE(A1,"昭","S"),"平","H")&"/4/1"))

その他の回答 (7)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.8

(1)質問者が自分の質問するまでやっていた路線と違うことを言うので気に食わない化も知れないが (2)A1セルに入っているデータ例が書いてないので、正確にいえないが(「質問するなら、データ例を書くものだ) こういうIF関数で、日付を場合分けして、年号入りのデータを西暦にするのは馬鹿げている。 いかにエクセルが日付の扱いで背後で苦労しているかいつも私は思っている。(閏年、月の大小、曜日、年号の変わり目など複雑になる要素はいっぱいだから) それを初心者が自分でプログラム的なことを関数で実現しようなどというのは、その難しさを知らないからだ。プログラムを組める人がいたら、聞いてみるがよい。プログラムは大変長くなりテストも必要になる。 ーー A1に平成12年11月12日と文字列であった場合 数式バー部に2000/11/12と出ていたら、日付シリアル値で入っているということで、西暦にしたければ、セルの書式設定で 2001年3月14日のアイテムを選ぶ。もし西暦文字列にしたければ、=TEXT(A1,"yyyy年mm月dd日") と入れる。 ーー '平成12年11月12日のように文字列で入っている場合は、=DATEVALUE(A1)で日付シリアル値になるから、セルの表示形式で西暦初諸式を設定すれば良い。 文字列にしたければ、=TEXT(A1,"yyyy年mm月dd日")  で良い ーー 上記では目的を達せられませんか。 昭21年11月20日とでもなっているのかな。 年月日の数字は全角でも、日付シリアル値に変えてくれるようだ。 もちろん1900年以後に当たる年号と年の場合ですが。

noname#204879
noname#204879
回答No.7

別解として、 =MID(A1,2,2)+1925*(LEFT(A1,1)="昭")+1988*(LEFT(A1,1)="平")

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.6

一例です。 最初のFINDで既にエラーになります。 =IF(SUM(COUNTIF(A1,{"昭*","平*"})),以下はSUBSTITUTEの数式)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

回答1,2です。 IF関数を重複して使っていますね。最初のIFでエラーになってしまっては全体がエラーとなりますが、最初のIFで正しい答えとなればエラー表示はされません。そのため昭のあるデータについては最初のIFの条件に合っていますので正しい答えが得られるのです。平のデータでは最初のIFでエラーとなりますので全体がエラーとなってしまいますね。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

>平成の変換(平23→2011等)を試すと しょっぱなの「FIND("昭",A1)」の部分を別セルに書き出して計算させてみると判りますが,このエラーが続き全てを圧して#VALUEの原因になっています。 教科書的な定石としては IFERROR(FIND("昭",A1)) のようにして,昭があっても「なくても」エラーだけは出さないように組み立てます。 計算例: =IF(ISNUMBER(FIND("昭",A1)),SUBSTITUTE(A1,"昭","")+1925,IF(ISNUMBER(FIND("平",A1)),SUBSTITUTE(A1,"平","")+1989,"OTHER"))

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

回答1ですが平成の時の1989は1988に直すことが必要でしょう。 =IF(NOT(ISERROR(FIND("昭",A1))),SUBSTITUTE(A1,"昭",)+1925,IF(NOT(ISERROR(FIND("平",A1))),SUBSTITUTE(A1,"平",)+1988,))

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

FIND関数はその文字がない場合にはエラー表示になります。 次のようにすればよいでしょう。 =IF(NOT(ISERROR(FIND("昭",A1))),SUBSTITUTE(A1,"昭",)+1925,IF(NOT(ISERROR(FIND("平",A1))),SUBSTITUTE(A1,"平",)+1989,))

関連するQ&A

  • 西暦から和暦に変換する関数を作る

    西暦から和暦に変換する関数をVBAで作りたい(昭和と平成だけ)のですが 良くわかりません。どなたか教えて頂けませんか?

  • 文安6年と、宝暦元年は重複ですか。

    和暦から西暦に書き換えをしようと、フリー百科事典『ウィキペディア(Wikipedia)』を見ましたら、  文安6年の西暦(ユリウス暦)と、宝徳元年の西暦が重複していました。 1989年が年の途中で昭和が平成に変わり重複するのは理解できますが月日では重複していないのに、フリー百科事典『ウィキペディア(Wikipedia)』の内容は  (1)誤記でしょうか。  (2)他に此の内容を読み方があるのでしょうか   (3)ネットで和暦から西暦に書き換える時に参照できるものが有りましたら紹介お願いいたします。

  • Excel if重複

       A列                   B列 111-1111-1111       111-5555-1112 222-2222-2222       222-2222-2222 333-3333-3333       123-4444-4444 444-4444-4444       444-4444-4444 とあります。 IF関数でAとBに同じのがあるかチェックしたいです。 この場合B列の222-2222-2222と444-4444-4444が重複です。 よろしくお願いします。

  • Excelでの誕生日自動変換について

    西暦で入力したものを自動で変換する方法は、あちこちに載っていますが 和暦(H,Sとか平成、昭和など)を自動変換する方法を教えていただけないでしょうか よろしくお願いします。

  • エクセルで日付設定

    エクセルで日付設定 お世話になります。 映画の題名を記帳してあるエクセルに、製作年が書いてあります。 西暦はなじみが薄いので、関数で和暦に変えたいとやってみましたが、西暦の「年」しか書いてないと明治までさかのぼってしまい、うまく変換されません。 1947 を 昭和22年 と変換する関数を教えてくださいませんか。

  • excelで西暦と和暦を表示・変換させたい

    (1) A1に「1980」などと打ち込み、それを西暦「1980年」と表示させたい。 (2) A2で、A1を「昭和55年]と和暦に変換したものを表示させたい。 (1)、(2)を行いたいのですが、どうしたら良いでしょうか?

  • 和暦変換

    和暦変換 Excel2007で、西暦を和暦に変換したいのですが、都合の良い関数を教えていただけないでしょうか。 例)1988年3月→昭和63年3月

  • Excelで和暦を西暦に直す方法を教えてください。

    Excelで和暦を西暦に直す方法を教えてください。 例えば 250820 と表示の和暦(昭和25年8月20日がこのような表示になっています)を 西暦表示(1950/8/20)に変えるにはどのような関数を使用すればうまくいくでしょうか? よろしくお願い致します。

  • #VALUE! エラーについて

    EXCEL97で下記のような処理で表記のエラーが出ます、対処方を教えて下さい、 尚、最後のヌル("")を0に変えても同じエラーです、 1つのセルに記入したらエラーは出ず正常に表示しますけど長いためa1,b1,c1に記入し他のセルに=a1+b1+c1としており表記のエラーです。又、数字はシリアル値です。 =if(today()>=37257,"昭和12年",if(today()>=37622,"昭和13年",if(today()>=37987,"昭和14年",if(today()>=38353,"昭和15年",if(today()>=・・・・・・,"")))))))

  • エクセルについて単純な質問ですが・・・

    こんなところでこんな単純な質問をして申し訳ございません。 エクセルでこんなことをしてみたいというのがあるのですが、 エクセル基本操作レベルの知識しかないためちょっと教えて下さい。 例えば、西暦から年号(和暦)を調べるのって 書式の設定で出来ると思うのですが、 逆に平成○年、昭和○○年ってセルに入れて、 西暦を出す方法ってあるのでしょうか? かつ、例えばA1セルに平成○年と入れるとA2セルに 西暦○○○○年って出す方法は ありますでしょうか? お手数ですが教えて頂けたらと思いますので、 宜しくお願いします。

専門家に質問してみよう