ここから本文です

続:Excelの関数について質問です。 https://detail.chiebukuro.yahoo.co.jp/qa/q...

yuk********さん

2019/7/1506:47:32

続:Excelの関数について質問です。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q132105073...
の続きです。

解決済み後、色々と試しましたが、
先程の関数では、対応出来ない場面が出ましたので
宜しくお願い致します。

=IF(AND(LEFT(CELL("format",B2))="D",ISNUMBER(B2)),"OK","NG")

=IF(AND(LEFT(CELL("format",B2))="D",ISNUMBER(B2)),1,"")
2つ共試しましたが、ダメでした。

B列には 日付が入っていますが、関数で日付を表示しています。
B列には関数が入っているので、先程の関数が対応出来ないのでしょうね
B列には
=IFERROR((J$7&"/"&J$8&"/"&ROW(A1))*1,"")となっています。

宜しくお願い致します。

この質問は、tai********さんに回答をリクエストしました。

閲覧数:
37
回答数:
2

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tai********さん

リクエストマッチ

2019/7/1510:43:59

Cell関数に関してはgru********さんが仰る通りです。

関数にしては書式の形式を返す珍しい関数です。日付の書式設定に対し"D"+数字で返しますがすべての日付書式に対応しているわけではないです。日付の書式設定「日付」の項目のサンプルに関しては大体は対応していますが「ユーザー定義」のdなどには対応していません。

打開策としてはB列のクローンを作って、(たとえば=B2とか)日付のサンプルから選んで日付の書式設定をしておきます。ダミーの列ですね。その列を判定の列とします。

添付図なら
A2セルに
=B2
と入れて下にコピーします。

判定の数式を
=IF(AND(LEFT(CELL("format",A2))="D",ISNUMBER(A2)),"OK","NG")

としてA列の文字色を白にして見えなくします。

Cell関数に関してはgru********さんが仰る通りです。...

  • 質問者

    yuk********さん

    2019/7/1512:18:12

    ありがとうございます。
    添付の様に、日付部分を二行で、結合しています。
    この際はどの様に対応すればいいでしょうか?

    宜しくお願い致します。

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

プロフィール画像

カテゴリマスター

gru********さん

2019/7/1508:51:46

tai********さんが最初の回答で書いている通り、cell関数は万能ではないです。たとえば表示形式が dd とか mmm のような場合は"G"が返るので"NG"になるでしょう。数式ではなく表示形式を確認しましょう。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる