賢いポイント生活をはじめよう >>

以前にどなたかが、質問の回答としての関数式をそのまま使っていますが一つだけ問題があります。
詳しい方よろしくお願いします。
Sheet1に年間データがあります。そこからSheet2へE1セルで月を指定して月単位でデータを抽出しているのですが
1月だけ抽出データの最後に、1900/1/0をひろってしまいます。書式を変えても1月0日をひろいます。他の月は空白を返してくれるのですが、1月だけは、書式コピー分すべて1900/1/0を返してきます。文字列や数値は大丈夫です。日付だけです。対処法お願いします。
なんとなくしか理解出来ていない、わたしですいません( ノД`)シクシク…

Sheet1 抽出作業列 F列  
=IF(OR(Sheet2!E$1="",MONTH(A2)<>Sheet2!E$1),"",ROW())

Sheet2 抽出列 A~E列 A列日付
=IF(COUNT(Sheet1!$F:$F)<ROW(E1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!$F:$F,ROW(E1))))
よろしくお願いします。

A 回答 (3件)

こんにちは



>1900/1/0をひろってしまいます
実際にそのようなデータがあるのなら、関数の機能としては間違いではないと思いますが、多分、「空白」セルが抽出されていて、結果的にそのような表示になっているのではないかと推測します。

セルの位置関係や内容(意味)がご質問文だけではよくわからないので、半分は想像ですが・・・
>Sheet1 抽出作業列 F列  
>=IF(OR(Sheet2!E$1="",MONTH(A2)<>Sheet2!E$1),"",ROW())
A列に対象とする日付が並んでいて、その範囲内に空白セルが混在しているものと推測します。
(1月を抽出する際に、空白セルの行のF列に抽出用の行番号が表示されているのではないでしょうか?)

対策として、A列が空白の場合はピックアップしないように、式内のORに条件を追加すればよいのではないかと思います。
具体的には
 =IF(OR(Sheet2!E$1="",A2="",MONTH(A2)<>Sheet2!E$1),"",ROW())
といった感じ。

(半分は想像ですので、当たるも八卦です。悪しからず)
    • good
    • 0
この回答へのお礼

お早い回答ありがとうございます。ご想像のとおりです。
空白セルの行のF列に抽出用の行番号が表示されています。
A2="" 足すだけなんて・・・m(__)m
わたしレベルじゃ簡単に想像できますね 
ありがとうございました

お礼日時:2018/12/07 17:33

こんにちは!



具体的な配置がよく判りませんが・・・
作業列の数式を
=IF((A2="")+(Sheet2!E$1="")+(MONTH(Sheet1!A2)<>Sheet2!E$1),"",ROW())

にしたらどうなりますか?

ちなみに数式の意味は「OR」条件で
A2が空白、またはA2の「月」がSheet2のE1以外、またはSheet2のE1が空白の場合は空白に!
そうでない場合は行番号を!

という数式です。

※ 1900/1/0をひろってしまいます。
Excel的に、空白セル=0 とみなしますので
セルの表示形式が「日付」になっている場合、0=1900/1/0 と判断します。
シリアル値は
1900/1/1を「1」として、1日増えるごとに「1」ずつプラスされます。

すなわち、「0」は1900/1/1 の1日前という判断して
「1900/1/0」という表示になると思います。m(_ _)m
    • good
    • 0
この回答へのお礼

わかりやすい解説ありがとうございます。
勉強になりました。1日前か・・・
またよろしくお願いします

お礼日時:2018/12/07 17:40

関数の複数の組み合わせとなっているので、


個々の関数が正しいか確認してみましょう。

「1900/1/0」は、「空白」「0]「1未満」を日付表示するとそうなります。
そんなところが選択対象になっているのでしょう。
    • good
    • 0
この回答へのお礼

作業列で空白もカウントしていました。
ありがとうございます。
未熟者ですいません m(__)m

お礼日時:2018/12/07 17:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報