- ベストアンサー
セルの書式設定について
- セルの書式設定について教えてください。日付を表示する際に問題が発生しています。
- セットされた関数によって表示される日付が正しく表示されない問題について解決策を教えてください。
- セルの書式設定で日付に設定しても日付が正しく表示されない問題についてアドバイスをお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>あるセルに結構複雑な関数(INDEX、SMALL等の組み合わせ)を設定し他のセルから日付をセットしたのですが、日付として表示されません。 >具体的には下記のような数式です。 =INDEX(C:C,SMALL(INDEX(($B$3:$B$31<>1)*100+ROW($B$3:$B$31),),ROW(C1)))&"" その式で抽出された値は文字列です。 「ユーザ定義でyyyy/mm/ddのように設定」は数値としての値に対する表示形式なので文字列に対しては効果がありません。 上記の数式の最後の &"" を除けば数値になると思います。 C列の値が文字列の場合は &"" の代わりに *1 を付加してください。 =INDEX(C:C,SMALL(INDEX(($B$3:$B$31<>1)*100+ROW($B$3:$B$31),1),ROW(C1)))&"" ↓ =INDEX(C:C,SMALL(INDEX(($B$3:$B$31<>1)*100+ROW($B$3:$B$31),1),ROW(C1))) または ↓ =INDEX(C:C,SMALL(INDEX(($B$3:$B$31<>1)*100+ROW($B$3:$B$31),1),ROW(C1)))*1
その他の回答 (4)
- chonami
- ベストアンサー率43% (448/1036)
式についてはNo.3の方の回答で出てますのでなぜ質問者さんの式でダメだったのかという点ですが、式の最後にある「&″″」が問題です。 これをつけることによって、長さ0の文字列がくっついていることになり、データが文字列扱いになったのです。 何でつけちゃったんですかね。エラー対策? 文字列では書式をどんなに変えても日付にはなりません。
お礼
文字なら、何もないとき表示されませんが、数値だと 1900/1/1?か何かが表示されてしまいました。 ただ、それは何とかなったので大丈夫です。 本当にありがとうございました。
- keithin
- ベストアンサー率66% (5278/7941)
まぁ、じゃぁそのまま使って =IF(ROW(C1)>COUNTIF(B:B,1),"",INDEX(C:C,SMALL(INDEX(($B$3:$B$31<>1)*100+ROW($B$3:$B$31),),ROW(C1)))) とかで。
お礼
日付として表示されました。 ありがとうございました。
- keithin
- ベストアンサー率66% (5278/7941)
>セルの書式設定で日付にすれば、あるいはユーザ定義で >yyyy/mm/ddのように設定すれば日付として表示されますが、 >どうしても日付になりません。 ちゃんと書式を設定したのにそうなるのでしたら、それは書式設定の問題じゃなく、あなたがいま実際に使っている具体的な数式の組み立てに問題があります。 ご自分のエクセルから実際の数式を数式バーの中からコピーしてご相談に掲示し、それをどのように修正したらよいのか、質問を出しなおしてみてください。 また、ご自分で問題を解決できるような、もっと平易な関数を組み合わせて使うような方策に切り替える事も必要かもしれませんね。(「判らなければまた人にやって貰えばイイや」と思うのか、それともご自分で何とかしたいと思うのか、あなたが決めることですが)
お礼
ありがとうございました。
補足
失礼しました。 具体的には下記のような数式です。 =INDEX(C:C,SMALL(INDEX(($B$3:$B$31<>1)*100+ROW($B$3:$B$31),),ROW(C1)))&"" 複数の項目の中から1がセットされている項目だけを表示させるようにしたものです。 解決策があればご教授下さい。
- mshr1962
- ベストアンサー率39% (7417/18945)
セルの書式が日付でシリアル値(41699)が表示されるのだとしたら、 数式の結果が文字列として表示されてませんか? =今の数式*1 で試してみてください。
お礼
文字列なんですね。 試したところ、日付として表示されました。 ありがとうございました。
お礼
勉強不足で申し訳ありません。 前者の方で対応させて頂きました。 丁寧なご回答、ありがとうございました。