- ベストアンサー
【365】日付がシリアル値になってしまう
同じような質問はあちこちで見ましたが、解決しないので質問させていただきます。 別シートからINDEX&MATCH関数で日付を表示させていますが、セルの書式は日付型にしているにも関わらずなぜかシリアル値で表示されてしまいます。 =IFERROR(INDEX(元!$A$6:$BJ$5000,MATCH($B10,元!$A$6:$A$5000,0),MATCH(G$6,元!$A$6:$BJ$6,0))&"","") そのシリアル値を値コピーしてもシリアル値のまま、値コピーしたセルをF2→Enterを押せば日付になります。 どうすれば日付型で表示してくれるのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
&"" を付けるのは 0を出したくないからだと思います。&"" を取り除き、 =IFERROR(INDEX(元!$A$6:$BJ$5000,MATCH($B10,元!$A$6:$A$5000,0),MATCH(G$6,元!$A$6:$BJ$6,0)),"") にします。 表示形式はどうなっているかわかりませんが、 「yyyy/m/d」なら「yyyy/m/d;;」にします。 但し、365 の無償版はこの設定ができません。私はオフライン版のExcel で設定してアップロードしています。 それが不可能なら =IFERROR((INDEX(元!$A$6:$BJ$5000,MATCH($B10,元!$A$6:$A$5000,0),MATCH(G$6,元!$A$6:$BJ$6,0))&"")+0,"") なお、行列全体を選択して、以下の様な数式にすれば、行の制限はなくなります。 =IFERROR(INDEX(元!$A:$BJ,MATCH($B10,元!$A:$A,0),MATCH(G$6,元!$6:$6,0)),"")
その他の回答 (2)
- msMike
- ベストアンサー率20% (364/1804)
提示式を簡略化した =IFERROR(INDEX(元!$A$6:$BJ$50,MATCH($B10,元!$A$6:$A$50,0),MATCH(G$6,元!$A$6:$BJ$6,0))&"","") で検討てみたいので、 別シートの範囲 元!A6:BJ50、元!A6:A50、元!A6:BJ6 のデータ、 および 提示された式を入力したシートのセル B10、G6 のデータ、 をお示しいただけないでしょうか? そして、該当式にどういう「日付型で表示して」欲しいのかを具体的に書いてください、お手数ですが…m(_._)m
お礼
ご回答ありがとうございました。
- asciiz
- ベストアンサー率70% (6803/9674)
「&""」という部分がありますが、そこでは例えば30000(数値)というシリアル値が取れたとして、30000&"" は "30000"という文字列値になってしまいます。 文字列値になってしまっては、書式設定が日付形式であっても、文字列値をそのまま表示するしかありません。 「&""」ではなく、「+0」または「*1」にするといいと思います。 (どちらも数値を変えない演算)
お礼
ご回答ありがとうございました。
お礼
ご回答ありがとうございました。 ご認識通り、空欄の場合は0を出したくないのです。 他のセルで0を表示したいのでオプションの「ゼロ値のセルにゼロを表示する」はオンのままです。 ご教示いただいた「=IFERROR((INDEX(元!$A$6:$BJ$5000,MATCH($B10,元!$A$6:$A$5000,0),MATCH(G$6,元!$A$6:$BJ$6,0))&"")+0,"")」でyyyy/m/d表示されました!! 書式は極力変えたくないので、こちらの数式を採用させていただきます。 大変助かりました。