
A1に「2023年」B2に「干支」を表示したいです。
https://www.officepro.jp/excelfunc/howto/index23 …
のサイトを参考に
=CHOOSE(MOD(YEAR(DATEVALUE(A1&"1月1日")),12)+1,"申(さる)","酉(とり)","戌(いぬ)","亥(い)","子(ね)","丑(うし)","寅(とら)","卯(う)","辰(たつ)","巳(み)","午(うま)","未(ひつじ)")
と打ち込んでいるのですが、何度やってもVALUEのエラーになります。
A1の「年」を抜いて「2023」にしてもVALUEのエラーになります。
ChatGPTに何度聞いても「問題ありません」と返されますが、現実として返されるのはエラーです。
試しに
A1を「2023」のみにしてB2に
=CHOOSE(MOD(YEAR(A1), 12) + 1, "申", "酉", "戌", "亥", "子", "丑", "寅", "卯", "辰", "巳", "午", "未")
と打ち込むとちゃんと表示されます。
A1に「2023年」B2に「干支」を表示したいです。
A1に「年」の文字はどうしても入れたいです。「干支」を表示するにはどうすればいいでしょうか?
ご教授いただけたら幸いです。
No.6ベストアンサー
- 回答日時:
No.5です。
前回回答で、
>「yyyy"年"」という方法はA1セルの値をシリアル値として数式を組み
>立てるという方針を定めたことになりますので、それ以外の方針の数式
>は適用できません。
と書きました。するとご質問者は、
>yyyy"年"のユーザー定義を解除して標準に戻して、・・・
と仰って、上記の方針をあっさり変更してしまいました。
方針を変更すると、もとの数式が適用できないのは、上記で述べたとおりです。前回回答で、No.4の回答の3)の数式をB1に記述して下方向へコピーと書いたのは、A1セルを「yyyy"年"」とする「方針」の時に適用する数式だからです。
ユーザー定義を解除して標準に戻したのであれば、適用する数式はNo.4さんの2)の数式になります。
従って、ご質問者が掲出された画像でいうと、C2セルに
=MID("子丑寅卯辰巳午未申酉戌亥",MOD(LEFT(A2,4)+8,12)+1,1)
という数式を記述して下方向へコピーするということになります。
※大変失礼ではありますが、No.4さんの回答はLEFT関数内のセルが一つづれているようです。上記数式に修正してください。
ありがとうございます。
方針と定義のこと、私は今まで知らずに四苦八苦しておりました。
二転三転させてしまってごめんなさい。
A列のセルの書式設定からユーザー設定で「yyyy"年"」を解除して文字列として
=MID("子丑寅卯辰巳午未申酉戌亥",MOD(LEFT(A2,4)+8,12)+1,1)
で1900年以降から下方向コピーしたら表示されました!
重ね重ねありがとうございます!
No.5
- 回答日時:
No.3です。
長文で失礼します。
>A列を選択してセルの書式設定からユーザー設定で「yyyy"年"」にしたら
との補足質問ですが、私の回答のどこにも上記のようなアドバイスはありません。何故そのようにされたのか判りません。
数式を作成するときは「方針」が大切です。セルの値が「数値」に見えているが実は「文字列」というよなこともあるからです。
従って、セルの値を数値として数式を組み立てるのか、文字列として数式を組み立てるのかという「方針」決めて進めていきます。
例えばNo.4さんの回答で言えば、1)、3)は数値として数式を組み立てており、2)は文字列として数式を組み立てています。
数値として組み立てる場合で日付の場合はシリアル値との関係性を理解する必要があります。「2023/1/1」はシリアル値では「44927」ですから、数値といってもシリアル値から西暦年号を取り出すには、「YEAR(シリアル値)」のような関数を用いて「2023」を取り出す必要があります。
つまり、いろいろな回答者から上記のように「方針」の異なる回答が複数示されている状況なので、ご質問者は数式の意味を理解する必要があるのです。理解せずに各回答者のアドバイスの一部を取り入れたりすると余計混乱に陥ります。
冒頭のユーザー設定で「yyyy"年"」という方法はA1セルの値をシリアル値として数式を組み立てるという方針を定めたことになりますので、それ以外の方針の数式は適用できません。
間違えてはいけないことは、数式がエラーにならないからといって正しい結果になっているとは限らないことです。
A1に「2023」とに入力して表示形式をユーザー設定で「yyyy"年"」にしたらどうなるでしょう?
「1905年」と表示されるはずです。つまり、エラーにならないとしてもこれは「1905年」の干支が求められるだけで、「2023年」の干支ではないということになります。
A1に「2023/1/1」と入力し、表示形式をユーザー設定で「yyyy"年"」とすると「2023」と表示されますが、表示形式を「G/標準」にすると「44927」と表示されます。これでNo.4さんの1)の数式をB1に入れたらどうなるでしょう?
「未(ひつじ)」と表示されるはずです。つまり、エラーにならないとしてもこれは「44927年」の干支が求められるだけで、「2023年」の干支ではないということになります。
>クエリから読み込んだ1800年からの2023年までの年表データに干支を表示させたい
とのことですが、大前提としてEXCELで日付をシリアル値として扱えるのは1900年1月1日以降ですから、シリアル値を用いて1800年から計算することは不可能です。
シリアル値でない西暦を数値として計算することは可能ですが、現在の暦が使用されるようになったのは明治6年1月1日(1873年1月1日)からで、この日はそれまで使用されていた天保暦では、明治5年12月3日に当たります。つまり、それ以前は現在の西暦で言う1月1日に新年となる訳ではないことになります。ですから干支の範囲も西暦の年号の範囲と必ずしも一致しないことになり、これを求める意味があるのか疑問です。
また、ご質問者はご自分の状況に関する情報を小出にされているようです。
当初のご質問に「クエリから読み込んだ・・・」などという説明はどこにもありません。回答者はご質問の内容からしか情報を得られないので、突然前提としていない情報を突き付けられても「聞いてないよ~」(©ダチョウ倶楽部)となるだけです。
>連続したコピー処理はしておらず、すべて各セルで手入力しても同じ結果でした。
普通は「連続してコピー処理をする」のが正しい処理です。「すべて各セルで手入力しても・・・」各セルに同じ数式が入力されているので同じ結果が返るのは当たり前です。
もう一度、B1セルにNo.4さんの回答の3)の数式を入れて、下方向へコピーしてみてください。
No.4
- 回答日時:
こんにちは
実際に、A1にどのよう値を入力なさっているのか不明ですが・・
1)A1セルには「2023」のように数値を入力している場合。
・A1セルの書式を「0000年」としておくことで、「年」付きで表示できます。
・B2セルには、以下の式を入力
=MID("子丑寅卯辰巳午未申酉戌亥",MOD(A1+8,12)+1,1)
2)A1セルには「2023年」のように文字として入力している場合。
・B2セルに以下の式を入力
=MID("子丑寅卯辰巳午未申酉戌亥",MOD(LEFT(A1,4)+8,12)+1,1)
3)A1セルには「2023/1/1」のように日付として入力している場合。
・A1セルの書式を「yyyy年」としておくことで、「年」付きで表示できます。
・B2セルには、以下の式を入力
=MID("子丑寅卯辰巳午未申酉戌亥",MOD(YEAR(C1)+8,12)+1,1)
※ 質問者様がどのようになさっているのか不明ですが、多分、上記のどれかには該当するのではないかと想像します。
そうですね。
「2000年」~「2023年」まで「年」と日付はなくだけがA列に入力されているような状態です。
A列を選択してセルの書式設定からユーザー設定で「yyyy"年"」にしたら
>2)A1セルには「2023年」のように文字として入力している場合。
・B2セルに以下の式を入力
=MID("子丑寅卯辰巳午未申酉戌亥",MOD(LEFT(A1,4)+8,12)+1,1)
これで表示されました!
あるいは
当初の
=CHOOSE(MOD(YEAR(DATEVALUE(A1&"1月1日")),12)+1,"申(さる)","酉(とり)","戌(いぬ)","亥(い)","子(ね)","丑(うし)","寅(とら)","卯(う)","辰(たつ)","巳(み)","午(うま)","未(ひつじ)")
または
=CHOOSE(MOD(YEAR((A1&"1月1日")*1), 12) + 1, "申", "酉", "戌", "亥", "子", "丑", "寅", "卯", "辰", "巳", "午", "未")
で表示されました!
ありがとうございます!
No.3
- 回答日時:
ご質問者が掲出した数式のように、"1月1日"を付加してから年を抽出するという考え方なら、
=CHOOSE(MOD(YEAR((A1&"1月1日")*1), 12) + 1, "申", "酉", "戌", "亥", "子", "丑", "寅", "卯", "辰", "巳", "午", "未")
もともと年号はA1セルの左4文字だと考えるなら
=CHOOSE(MOD(LEFT(A1,4), 12) + 1, "申", "酉", "戌", "亥", "子", "丑", "寅", "卯", "辰", "巳", "午", "未")
A1セルの5文字目以降は消してしまえば数字だけになると考えるなら
=CHOOSE(MOD(REPLACE(A1,5,10,""), 12) + 1, "申", "酉", "戌", "亥", "子", "丑", "寅", "卯", "辰", "巳", "午", "未")
すごいです!
=CHOOSE(MOD(YEAR((A1&"1月1日")*1), 12) + 1, "申", "酉", "戌", "亥", "子", "丑", "寅", "卯", "辰", "巳", "午", "未")
で表示されました!
((A1&"1月1日")*1)の(*1)を追加したら表示されました!
ありがとうございます!
No.2
- 回答日時:
=CHOOSE(
MOD(
YEAR(
DATEVALUE(A1&"1月1日")
)
,12
)+1
,"申(さる)","酉(とり)","戌(いぬ)","亥(い)","子(ね)","丑(うし)","寅(とら)","卯(う)","辰(たつ)","巳(み)","午(うま)","未(ひつじ)"
)
おかしくないんだけどなあ。
むしろA1セルに2023と入力すると、おかしなことになるでしょうけどね。
A1セルに ”2023” と入力した場合、DATEVALUE関数の中で
”20231月1日”
となって、Excelで扱えない値になり #VALUE! エラーになるんじゃないかな。
ということで、
A1セルが実は「数値入力」で「セルの表示形式」で ”年” を表示させている。
なんて事を推測してみる。
その場合、
DATEVALUE(A1&"1月1日")
↓
DATEVALUE(A1&"年1月1日")
とすれば正常に動作しますよ。
A1でセルの書式設定からユーザー設定で「yyyy"年"」にしたら
当初の
=CHOOSE(MOD(YEAR(DATEVALUE(A1&"1月1日")),12)+1,"申(さる)","酉(とり)","戌(いぬ)","亥(い)","子(ね)","丑(うし)","寅(とら)","卯(う)","辰(たつ)","巳(み)","午(うま)","未(ひつじ)")
あるいは
=CHOOSE(MOD(YEAR((A1&"1月1日")*1), 12) + 1, "申", "酉", "戌", "亥", "子", "丑", "寅", "卯", "辰", "巳", "午", "未")
で表示されました!
ありがとうございます!
No.1
- 回答日時:
A1でセルの書式設定からユーザー設定で「yyyy"年"」としてはいかがですか?
なお、単純に2023だけではシリアル値で1905になりますから、A1の入力値は2023/1/1などのようにする。
https://atmarkit.itmedia.co.jp/fwin2k/win2ktips/ …
A列を選択してセルの書式設定からユーザー設定で「yyyy"年"」にしたら
当初の
=CHOOSE(MOD(YEAR(DATEVALUE(A1&"1月1日")),12)+1,"申(さる)","酉(とり)","戌(いぬ)","亥(い)","子(ね)","丑(うし)","寅(とら)","卯(う)","辰(たつ)","巳(み)","午(うま)","未(ひつじ)")
あるいは
=CHOOSE(MOD(YEAR((A1&"1月1日")*1), 12) + 1, "申", "酉", "戌", "亥", "子", "丑", "寅", "卯", "辰", "巳", "午", "未")
で表示されました!
ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
Excelで1つしかない値だけを抽出。Unique関数を使わずに
Excel(エクセル)
-
Excel関数 マイナスは赤字、+の場合は黒字設定にはできますか?
Excel(エクセル)
-
エクセルおいて,論理式の関数を使う場合は,空白のセルは,数字では0と扱われますか?
Excel(エクセル)
-
-
4
Excelが苦手過ぎて、まともに使えません。 根本的に、この資料はどのExcelを使えば良いのかが分
Excel(エクセル)
-
5
Excel関数 セルが空白の場合は,現在の表示のままに、数値が入れば計算する数式を教えてください。
Excel(エクセル)
-
6
エクセルで条件付き書式を使わずにセルの文字の色を変える方法を教えて下さい
Excel(エクセル)
-
7
Excelの文字列を数字に変換する方法について
Excel(エクセル)
-
8
Excelの関数で実現可能か知りたいです
Excel(エクセル)
-
9
EXCEL AVEREGE関数について
Excel(エクセル)
-
10
能力が問われると思う
Excel(エクセル)
-
11
Excelの関数についての質問です。(vlookup関数) A列 B列. C 1 大阪 50. 検索
Excel(エクセル)
-
12
エクセルのデータの入力規則についての質問です
Excel(エクセル)
-
13
エクセルの数式で教えてください。
Excel(エクセル)
-
14
Excelへのデータ入力作業
Excel(エクセル)
-
15
Excelの関数
Excel(エクセル)
-
16
エクセル 小さい方の数字をゼロか非表示にしたい。
Excel(エクセル)
-
17
win10でexcel2003は動かないのか
Excel(エクセル)
-
18
エクセルで隣接していない複数のセルをコピーして、その状態(隣接していない)で張り付ける方法
Excel(エクセル)
-
19
計算式がたくさん入ったExcelのファイルを他のファイルからシートを挿入した際、計算式の中に他のファ
Excel(エクセル)
-
20
シート名を簡単に書く方法があれば教えてください。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
A1セルに入力したら、入力時間...
-
Excelで同じセルに箇条書きをし...
-
エクセルで既に入力してある文...
-
IF関数で0より大きい数値が入力...
-
参照先セルに値が入っていない...
-
エクセルで時間の判定をしてい...
-
Excel:文字と数字の組合せ、次...
-
値を入力後、自動的にアクティ...
-
エクセルの数式がかぶって、選...
-
IF関数1と6なら「〇」それ以...
-
Excelでセルに入力されたカラー...
-
空白でないセルの値を返す方法...
-
エクセルで、セルに入力カーソ...
-
yyyy/mm/ddからyyyy/mmへの変換
-
EXCELのセル上のURLを...
-
エクセルで、同じ数値を一気に...
-
excel 関数にて文字を0として認...
-
ExcelVBAでセルを編集状態にす...
-
自分のEXCELに株価を自動的に取...
-
一分あたりの数の出し方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで同じセルに箇条書きをし...
-
A1セルに入力したら、入力時間...
-
IF関数で0より大きい数値が入力...
-
参照先セルに値が入っていない...
-
エクセルで既に入力してある文...
-
エクセルで時間の判定をしてい...
-
空白でないセルの値を返す方法...
-
Excel:文字と数字の組合せ、次...
-
値を入力後、自動的にアクティ...
-
EXCELのセル上のURLを...
-
入力したところまでを自動的に...
-
エクセルの数式がかぶって、選...
-
Excelでセルに入力されたカラー...
-
エクセル セルに文字を入力した...
-
マイナス同士の前年比
-
excel 関数にて文字を0として認...
-
バーコードが読み取れない原因...
-
ExcelVBAでセルを編集状態にす...
-
【vba】指定範囲の中に任意の文...
-
エクセルで10分ごとの時刻の...
おすすめ情報
ありがとうございます。セルの書式設定は「標準」になっています。
なのでDATEVALUE(A1&"年1月1日")にしても「年」のダブりではなかったですね・・・
すみません・・・
続けて失礼します。
A列を選択してセルの書式設定からユーザー設定で「yyyy"年"」にしたら
表示された!!
・・と思ったのですが、「新規のシートのみ」でした。
元々「クエリから読み込んだ1800年からの2023年までの年表データに干支を表示させたい」のが目標だったのですが、
これをやったらA2の列からすべて同一の干支が返されました。
例えば、
A1 B1
2021年 子(実際は丑)
2022年 子(実際は寅)
2023年 子(実際は卯)
になります。
クエリを削除解除しても同じ結果でした。
連続したコピー処理はしておらず、すべて各セルで手入力しても同じ結果でした。
しかしA1を新しく「2021年」と手打ちしても結果は変わらず。B1以降はすべて同じ干支になってしまいます。
この場合、どうしたらいいでしょうか?
教えていただけたら幸いです。
すみません・・・
続けて失礼します。
A列を選択してセルの書式設定からユーザー設定で「yyyy"年"」にしたら
表示された!!
・・と思ったのですが、「新規のシートのみ」でした。
元々「クエリから読み込んだ1800年からの2023年までの年表データに干支を表示させたい」のが目標だったのですが、
これをやったらA2の列からすべて同一の干支が返されました。
例えば、
A1 B1
2021年 子(実際は丑)
2022年 子(実際は寅)
2023年 子(実際は卯)
になります。
クエリを削除解除しても同じ結果でした。
連続したコピー処理はしておらず、すべて各セルで手入力しても同じ結果でした。
しかしA1を新しく「2021年」と手打ちしても結果は変わらず。B1以降はすべて同じ干支になってしまいます。
この場合、どうしたらいいでしょうか?
教えていただけたら幸いです。
すみません・・・
続けて失礼します。
A列を選択してセルの書式設定からユーザー設定で「yyyy"年"」にしたら
表示された!!
・・と思ったのですが、「新規のシートのみ」でした。
元々「クエリから読み込んだ1800年からの2023年までの年表データに干支を表示させたい」のが目標だったのですが、
これをやったらA2の列からすべて同一の干支が返されました。
例えば、
A1 B1
2021年 子(実際は丑)
2022年 子(実際は寅)
2023年 子(実際は卯)
になります。
クエリを削除解除しても同じ結果でした。
連続したコピー処理はしておらず、すべて各セルで手入力しても同じ結果でした。
しかしA1を新しく「2021年」と手打ちしても結果は変わらず。B1以降はすべて同じ干支になってしまいます。
この場合、どうしたらいいでしょうか?
教えていただけたら幸いです。
>大前提としてEXCELで日付をシリアル値として扱えるのは1900年1月1日以降ですから、シリアル値を用いて1800年から計算することは不可能です。
丁寧に解説ありがとうございます。初めて知りました・・・。
通りで結果がおかしくなると、私も言葉足らずでごめんなさい。
新規シートで動作テストを続けていました。
現在、ご指摘の通り、
yyyy"年"のユーザー定義を解除して標準に戻して、
=MID("子丑寅卯辰巳午未申酉戌亥",MOD(LEFT(A1,4)+8,12)+1,1)
の数式を入れてみたのですが、VALUEになりました。
ただA列の「年」の表示を抜くと干支は表示されます。
しかしA列の「年」の文字を入れると、VALUEになってしまうので堂々巡りを繰り返しています。