『日付をシリアル値からの直し方』(みお) どなたかわかる方教えてください(T_T) 状態 ⇒IF関数で別セルにある日付を抽出し下100行ほどに関数をコピーしました。 ちゃんと出したい日付が出てるセルもあれば数か所「2144/5/29」のように 年度も日付も全く違うものが表示されるセルがあります。 やったこと ⇒元データ列、関数指定列ともに列全体にセルの書式設定から「日付」にしました ⇒「短い日付形式」にしました ⇒問題なく表示されるセルの元データと、シリアル値になっているセルの元データをいれかえてみましたがちゃんと表示されたので、元データ列の問題ではないと思います。 < 使用 Excel:unknown、使用 OS:Windows10 > ---- どのような関数を入れているのか、本来なんと表示されなければならないのが同表示されているのかを示してもらえないだろうか? あとEXCELのバージョンも。 (ねむねむ) 2022/04/15(金) 10:55 ---- 関数 =IF(F4<>"発","",SUMIFS(AK:AK,E:E,E4,F:F,"受")) ・F列が受なら空白 ・発が入ってたら同じNo(E列)の受の日付((AK列)を表示 ・本来は2021/4/15のような形式になるよう書式設定しています。 ExcelのバージョンはOffice2021です。 ご確認よろしくお願いします<(_ _)> (みお) 2022/04/15(金) 11:10 ---- その式はE列が同じ値で受と入力されている行が複数あればその分集計されてしまうがそういうことはないだろうか? 例えばE列が同じで受と入力されている行が2行あり、そのAK列が両方とも 2022/3/15 だと結果が 2144/5/29 となる。 (ねむねむ) 2022/04/15(金) 11:24 ---- 仰る通りでした・・・ E列に受が複数ある行があり、同じ日付が入っています。(金額が異なるため分けてます) 日付が一致していたらその日付を出すようにしたいのですが、どうしたらよいのでしょうか、、 (みお) 2022/04/15(金) 11:38 ---- COUNTIFS関数で個数を求められるのでSUMIFS関数の結果をCOUNTIFS関数の結果で割るのはどうだろうか? =IF(F4<>"発","",SUMIFS(AK:AK,E:E,E4,F:F,"受")/COUNTIFS(E:E,E4,F:F,"受")) (ねむねむ) 2022/04/15(金) 11:42 ---- ちゃんと出したい日付がでましたが、受になっている行が空欄ではなくvalueのエラー表示になってしまいました。。 (みお) 2022/04/15(金) 11:52 ---- 条件付き書式でエラーを白字に変えて解決いたしました<(_ _)> もしわかったらもう1点関数について教えていただきたいのですが、 こちらの関数↓で、AK列(日付)が空白の場合は別の列(仮:AL列)の日付を表示。 のようにするにはどうなりますか? AL列には必ず日付が入ってますが、AK列にあればAK列を優先とし、なければAL列を表示としたいです。 =IF(F4<>"発","",SUMIFS(AK:AK,E:E,E4,F:F,"受")/COUNTIFS(E:E,E4,F:F,"受")) (みお) 2022/04/15(金) 12:15 ---- ちょっと確認だけ 2つめの質問の場合も、同じE列のグループで、F列に「受」が複数あるんですか? あるんだったら、日付はどの行も同じ? AK列が空白ならどの行もすべて空白? だとしたら、UNIQUE 関数と FILTER 関数でできるんじゃないですかね、2021なら。 >条件付き書式でエラーを白字に変えて解決いたしました #DIV/0! じゃなく、#VALUE! エラーなら、エラーになる原因を追究した方がいいのでは? 普通はならないと思いますけど? 以上 (笑) 2022/04/15(金) 13:37 ---- 2つめの質問の場合も、同じE列のグループで、F列に「受」が複数あるんですか? ⇒その通りです。  日付はAK列とAL列で異なる場合もありますが、AK列を正とし、AL列はあくまで予定日となります。   AK列が空白の時は全てが空白というわけではありません。   ざっくりですがこんなかんじです↓ 請求が来てれば請求の日付、なければ発注時の予定日をだしたいです。 発注時の予定日は基本的にすべての「受」データに入ってます。       見積    発注(AL列)  請求(AK列)    ★(関数列) 1 受  2022/4/30   2022/4/30   2022/5/31 1 発  2022/5/31   2022/5/31   2022/6/30   2022/5/31 2 受  2022/5/31   2022/5/31 2 発  2022/6/30   2022/6/30   2022/6/30   2022/5/31 2 受  2022/5/31   2022/5/31 2 発  2022/7/31   2022/7/31   2022/7/31   2022/5/31 #DIV/0! じゃなく、#VALUE! エラーなら、エラーになる原因を追究した方がいいのでは? 普通はならないと思いますけど? ⇒原因がすぐにはわからず、とりあえず出したいもの(発に日付を出す)は問題なかったので、一旦はスルーとしましたが全ての関数ができた段階でエラーについても調べようと思ってます。。 関数があまり得意ではなく、要望が多くなり申し訳ございません。 (みお) 2022/04/15(金) 15:00 ---- こっちの聞きたいことが伝わってないようです。 E F ・ AK AL 4 2 受 5/31 5 2 発 6/30 6/30 6 2 受 5/31 7 2 発 7/31 7/31 同じグループで「受」が2行ありますよね(4行目と6行目) AK4が空白なら、必ずAK6も空白なんですか? つまり、AK4には日付が入って、AK6が空白なんてことはないのか、 必ず AK4=AK6、AL4=AL6 という関係なのか、ということ。 だとすれば ↓ な感じで例示通りになりませんか? =IF(F4<>"発","",UNIQUE(FILTER(IF(AK:AK<>"",AK:AK,AL:AL),(E:E=E4)*(F:F="受"),"")))   処理が重たく感じるようなら、範囲を列全体にせず $AK$4:$AK$200 のように行範囲を指定してみてください。 以上 (笑) 2022/04/15(金) 15:47 ---- 言葉が足らず申し訳ございません。 ご認識の通り必ず「AK4=AK6、AL4=AL6」となります。 いただいた関数で出したい数値が出たのですが、 Excel自体がすごく重くなってしまいました・・・ 範囲指定もしましたが動作がうまくいかなくなってしまいました。。 (みお) 2022/04/15(金) 16:11 ---- >範囲指定もしましたが動作がうまくいかなくなってしまいました。。 ・変更した数式を提示してください。 ・どうなってしまったのか、具体的に説明してください。 以上 (笑) 2022/04/15(金) 16:30 ---- >・変更した数式を提示してください。 =IF(F5<>"発","",UNIQUE(FILTER(IF(AK:AK<>"",AD:AD,AD:AD),(E:E=E5)*(F:F="受"),""))) ⇒列全体を指定すると欲しいデータは出ますが、   Excel右下に「計算中(〇%)」と出てしまい全体的に動作にタイムラグが発生してしまいます。   フィルターをかけたあと再度全選択する時など。 =IF(F4<>"発","",UNIQUE(FILTER(IF($AK$4:$AK$1500<>"",$AD$4:$AD$1500,$AD$4:$AD$1500),(E:E=E4)*(F:F="受"),""))) ⇒日付列を4〜1500行に指定すると、日付の欲しいセルが#VALUE!になってしまいます。 何度も申し訳ございませんm(__)m (みお) 2022/04/15(金) 16:48 ---- >=IF(F4<>"発","",UNIQUE(FILTER(IF($AK$4:$AK$1500<>"",$AD$4:$AD$1500,$AD$4:$AD$1500),(E:E=E4)*(F:F="受"),""))) ~~~~~~~~~~~~~~ 最後の方の (E:E=E4)*(F:F="受") も行範囲を指定してください。     ↓ ($E$4:$E$1500=E4)*($F$4:$F$1500="受") それと波線部は $AK$4:$AK$1500 では? というか、どこから $AD$4:$AD$1500 が出てきたんですかね? AL列から変更したんですか? 以上 (笑) 2022/04/15(金) 17:14 ---- ご返信が遅くなり申し訳ありません。 どこから $AD$4:$AD$1500 が出てきたんですかね? AL列から変更したんですか? ⇒AL列を仮としていましたが、AD列に変更しました。お伝え漏れすみません。 全て範囲指定したところ問題なく表示されました。 また教えていただいた日付の関数同様更に金額も同じように抽出したく、 1つ条件が追加となるため、わかったら教えていただけると助かります<(_ _)> 何度も申し訳ございません。 E F ・  Q(見積)  AM(請求)  AQ   関数(★) 4 2 受    3000    3000   関東 5 2 発    2500    2500   関東   3000 6 2 受    1500         関西 7 2 発    700     700    関西   1500 ※エリア(AQ列)は関東・関西の2つのみです。 ※1つの番号(E列)で、エリアが分かれる時のみ上記表のように受発が2つ以上(受は2つ以上になることはなし)になります。 <関数★> 同じ番号且つ、エリア(AQ列)ごとに、 発の関数セルに受の請求金額(AM列)が入っていればその金額を、空白の時は見積金額(Q列)を表示。 やりたいことは1つの番号に受発を含んだ1000行以上あるデータで、 発にフィルターをかけた時に受注額がわからなくなってしまうため、発の行に発注に紐づく(同じ番号)受注の日付・金額を表示したい。ということになります。 わかりにくくて申し訳ございません。よろしくお願いします。 (みお) 2022/04/18(月) 10:41 ---- 一応、確認だけ >受は2つ以上になることはなし 例示ではどう見ても「受」が2つあるんですけど エリアごとには 1つしかないってこと? 以上 (笑) 2022/04/18(月) 23:40