プロが教えるわが家の防犯対策術!

C列の連続する重複データ(管理番号)を探し、対象の行数のF列に「予約」という文字が含まれていないかを確認する数式を教えてください。
重複データは必ず連続しています。
重複の件数は決まっていません。
宜しくお願いします。

質問者からの補足コメント

  • @fujillinさん

    拙い文章で読み取っていただき、ありがとうございます。
    先ほど教えて頂きました数式を入れてみました。
    ただ、一部結果が相違している部分がありまして、どこを修正したら良いのか
    教えていただけますでしょうか。
    追加で、1行のみの場合も「該当あり、なし」の結果を返したかったので、
    頭に少しだけ追加させていただいております。

    3行目です。
    =IF(IFERROR(FIND("予約",F3),0)>=1,"該当あり",IF(SUMPRODUCT((C3:C1000<>"")*(C3:C1000=C4:C1001)*((ISNUMBER(SEARCH("*予約*",F3:F1000))+ISNUMBER(SEARCH("*予約*",F4:F1001)))>0)),"該当あり","該当なし"))

    恐れ入りますがご教示お願いします。

    「Excelで連続して重複する行数の違う列」の補足画像1
      補足日時:2023/04/23 13:04
  • 画像が悪すぎたので転記します。

      C列   F列 G列
    1 管理番号 納期情報       予約
    2 16889 5月上旬頃 (予約) 該当あり
    3 16715 2~4営業日後    該当あり ←結果が不一致
    4 16715 2~4営業日後    該当あり ←結果が不一致
    5 16761 2~4営業日後    該当あり
    6 16761 5月上旬頃 (予約) 該当あり
    7 16668 2~4営業日後    該当なし
    8 16665 2~4営業日後    該当なし
    9 16788 2~4営業日後    該当なし
    10 16720 2~4営業日後    該当なし
    11 16720 2~4営業日後    該当なし
    12 16648 2~4営業日後    該当なし
    13 17096 【予約】27日以降 該当あり

      補足日時:2023/04/23 13:57

A 回答 (5件)

No.3です。


前回回答が要件を満たしていたかったので、数式を修正しました。
添付画像をご覧ください。G2セルに

=IF(SUMPRODUCT((($C$2:$C$1000)*ISNUMBER(FIND("予約",$F$2:$F$1000))=C2)*1),"該当あり","該当なし")

を記述して下方向へコピーしています。
ご希望の結果と一致しているかご確認ください。
「Excelで連続して重複する行数の違う列」の回答画像5
    • good
    • 0
この回答へのお礼

ありがとうございました!
無事にできました。
いただいた通りの数式では何故か#VALUE!が出てしまったので、
=IF(SUMPRODUCT((($C$2:$C$1000)=C2)*ISNUMBER(FIND("予約",$F$2:$F$1000))),"該当あり","該当なし")
こちらで期待していた結果が得られました。
お手数をお掛けしました。本当に助かりました!

お礼日時:2023/04/23 15:37

No.3です。


失礼しました。ご質問の意図を勘違いしていたようです。
重複している場合は、「予約」の文字が含まれていない行にも「該当あり」を表示するという意図なら、前回回答は要件を満たしません。無視してください。
    • good
    • 0

>1行のみの場合も「該当あり、なし」の結果を返したかったので、・・・


ということなら、「重複している」としいう条件はなしということなので、F列に予約の文字が含まれていれば、該当ありを表示するだけです。

だとするとご質問者が掲示された画像で言えば、G2セルに、

=IF(IFERROR(FIND("予約",F2),0),"該当あり","該当なし")・・・①

を記述して下方向へコピーするだけです。添付画像をご覧ください。
予約1に①の数式を入れてみました。

そうではなく、やはり、重複しているという条件を付けるなら、G2セルに

=IF(IFERROR(FIND("予約",F2)*(COUNTIF(C:C,C2)>1),0),"該当あり","該当なし")・・・②

を記述して下方向へコピーするということになります。添付画像の予約2(H2)に②の数式をいれています。

お望みの結果となる方の数式をお使いください。
「Excelで連続して重複する行数の違う列」の回答画像3
    • good
    • 0
この回答へのお礼

何度もありがとうございます!
その先のことまでお伝えしていなかったので、色々と混乱を招いてしまいました。
実は、この後に重複した行をCOUNTBLANKを使用して絞り込みを行う前準備として例えば、5・6行目両方に「該当あり」と返したかったのですが、
なかなかうまくいかずに悩んでいました。

お礼日時:2023/04/23 14:20

No1です。



>一部結果が相違している部分がありまして
えっと・・・
No1の式は、「ご質問内容に該当する行が存在するか否か」を判断する式です。
(表全体を見て、該当があるか否かを計算しています)
ですので、補足の図の使い方のように、フィルコピーするものではありません。
(私の勘違いなのか、質問者様の勘違いなのか、兎に角まったく意味合いが違います)
各行について判断するだけなら、もっと簡単な式になります。


説明が無いので、イマイチよくわかりませんけれど・・・
補足の図を見ると、条件付き書式で判断したいということでしょうか?
もしそうであるなら、条件付き書式の判定を「数式を使用して~」で設定するようにし、2行目のセルがアクティブな状態で、
 =COUNTIF(F2,"*予約*")*(COUNTIF(OFFSET(C1,,,3),C2)>1)
を条件式にして書式を設定すればできるでしょう。
(G列に数式を入れたり、フィルコピーする必要はありません)

※ 上記の式では、「予約」の文字がある方の行にだけ書式が適用されます。
 (連続する管理番号でも「予約」の文字のない方の行には適用されません)
    • good
    • 0

こんにちは



不明点は勝手に解釈しました。
・C列(管理番号)が空白の行は対象としない
 (空白が連続する行に「予約」の文字があってもカウントしません)
・計算対象とする範囲は1行目から1000行目までと仮定

以下は、ご質問内容に合致する行があるか否かを判定する式です
ご参考までに。

="該当"&IF(SUMPRODUCT((C1:C999<>"")*(C1:C999=C2:C1000)*((ISNUMBER(SEARCH("*予約*",F1:F999))+ISNUMBER(SEARCH("*予約*",F2:F1000)))>0)),"あり","なし")
    • good
    • 0

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