今から楽しみな予定はありますか?

アクセスデータを元にエクセルで車の配車表を作成しています。
折り返しの条件が複数あり、フラグを立てれなく困っています。
画像の通りに条件に合わせて折り返しのマークが付けれれば完成できます。

折り返しの条件ですが、
※1=車番、名前が重複した出発時間が早いデータ
※2=車番、名前が重複した出発時間が※1よりも遅いデータ
※2=混載してても車番、名前が重複した※1よりも出発時間が遅いデータ
※3=車番、名前が重複した出発時間が※2よりも遅いデータ
※3=混載してても車番、名前が重複した出発時間が※2よりも遅いデータ

重複していても混載と折り返しは別なので、混載だけの車は※1は付かない。
どなたか助けて下さい。

「アクセス2016 エクセル2016 重複」の質問画像

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

  • 回答ありがとうございます。みなさんのおかげで後一歩の所まで辿り着きました。
    スピル機能を使える環境ではなかったので、この形でやらせて頂きました。
    N列:重複整理
    =IF(COUNTIFS($F:$F, F2, $K:$K, K2) = 1, 0, COUNTIFS($F:$F, F2, $K:$K, K2))
    O列:出発順位
    =SUMPRODUCT((F:F=F2) * (K:K=K2) * (L:L <L2)) + 1
    P列:折り返し
    =IF(N:N=0, "", IF(AND(O:O=1, I:I=FALSE), "※1", IF(AND(O:O=2, I:I=FALSE), "※2", IF(O:O=3, "※3", ""))))
    最後に赤いセル箇所の3店舗混載をしたときにどうしてもフラグが立ちません。
    どこから間違っているのかわからない状態です。宜しくお願い致します。

    「アクセス2016 エクセル2016 重複」の補足画像1
      補足日時:2024/11/15 11:27

A 回答 (3件)

No2です



補足を読んでも肝心のルールはハッキリしないままなので、以下は勝手に解釈したルールに基いて作成したものです。
・・ですので違うところがあれば適宜修正してください。
(Excel2019にて動作確認)

スピル機能が使えないとのことなので、ローテクになりますけれど・・
H2セルに以下の式を入力し、下方にフィルコピー。
※ 車番・名前・時刻が全て同一のデータが複数存在することはないものと仮定しています。
=IFERROR("※"&IF(ROW()=MOD(AGGREGATE(15,6,K$2:K$99*10000000+ROW(K$2:K$99)/(K$2:K$99<>"")/(F$2:F$99=F2)/(J$2:J$99=J2)/(I$2:I$99=""),1),10000000),1,MATCH(ROW(),INDEX(MOD(AGGREGATE(15,6,K$2:K$99*10000000+ROW(K$2:K$99)/(K$2:K$99<>"")/(F$2:F$99=F2)/(J$2:J$99=J2)/(K$2:K$99>INDEX(K:K,MOD(AGGREGATE(15,6,K$2:K$99*10000000+ROW(K$2:K$99)/(K$2:K$99<>"")/(F$2:F$99=F2)/(J$2:J$99=J2)/(I$2:I$99=""),1),10000000))),ROW($1:$2)),10000000),),0)+1),"")
    • good
    • 1

こんにちは



画像がよく見えないのと、説明にも不明の部分がありますが・・
I列のデータは★と▲とあるようですが、違いや意味などが不明です。
「混載だけの車」の「だけ」の意味もよくわかりません。

勝手に「混載」の部分は無視して、以下のように解釈した例を以下に。
「車番(F列)、名前(K列)が同じものについて、時間(L列)順に並べた際に、上位3番目までのものに「※1」~「※3」を表示し、その他は空白とする」

上記であれば、スピル機能を使える環境でH2セルに
=IFERROR("※"&MATCH(ROW(),INDEX(FILTER(ROW(K:K),(F:F<>"")*(F:F=F2)*(J:J=J2),""),ROW($1:$3)),0),"")
を入力して、下方にフィルコピーすれば可能です。


「混載だけの車」という意味が、『I列が空白以外のデータは「※1」の場合に限り対象外』という意味なら、「※1」に該当する行番号は
=INDEX(FILTER(ROW(K:K),(F:F=F2)*(J:J=J2)*(I:I=""),""),1)
で求められますので、最初の式の抽出条件に、「このデータの時間より後であること」を付け加えれば、あとは同様の方法で求めることが可能でしょう。

※ 上記の式は全行を計算対象としていますので、計算に時間がかかる場合は、対象行範囲を狭めて指定すれば速度が向上すると思います。
    • good
    • 1
この回答へのお礼

こんにちは
回答ありがとうございます。
説明不足で申し訳ございません。
★は2店舗混載で、▲は3店舗混載です。
単純な重複データの抽出だと、
折り返しも混載も重複と判定されてしまい、
困っていました。
参考にさせて頂き、これからやってみます!

お礼日時:2024/11/15 01:33

エクセルで配車表を作成する際に、「車番」「名前」「出発時間」の条件で折り返しマーク(※1、※2、※3)を付けるには、いくつかの手順で対応することが可能です。

以下に、おすすめの手順を説明します。

1. 重複データの整理

まず、車番と名前が同じデータがどの程度重複しているかを確認します。Excelの「COUNTIFS」関数を使って、重複回数をカウントする列を作成します。

• 新しい列に、例えば =COUNTIFS(A:A, [車番セル], B:B, [名前セル]) のような式を使い、車番と名前の組み合わせごとの出現回数をカウントします。

2. 出発時間の順位付け

次に、車番と名前が同じデータに対して、出発時間に基づく順位(早い順)を付けます。

• 「RANK」関数または「SUMPRODUCT」関数を使い、出発時間に基づく順位を作成します。たとえば、以下のような式を使用します。

=SUMPRODUCT((A:A=[車番セル]) * (B:B=[名前セル]) * (C:C < [出発時間セル])) + 1

この式は、出発時間の昇順で順位を付けます。各レコードの順位が1位ならば「※1」、2位ならば「※2」などとマークをつけられるようにします。

3. 混載データの判定

「混載」は、同じ車番・名前があり、他の出発データも同じ時間に入っていることを意味すると理解します。これを判別するには、重複する「車番」と「名前」に対し「出発時間」も一致するかをチェックする方法が有効です。

• COUNTIFS 関数で「車番」「名前」「出発時間」の組み合わせで重複があるかを判定し、混載データとそれ以外のデータを分けるフラグ列を作成します。

4. 条件付き書式またはIF関数でフラグ付け

「順位」と「混載判定」に基づいて、それぞれのデータに「※1」「※2」「※3」などのフラグを立てます。

• 新たな列を作成し、条件に応じてIF関数で「※1」や「※2」と表示するよう設定します。例えば:

=IF(AND([順位セル]=1, [混載判定セル]=FALSE), "※1",
IF(AND([順位セル]=2, [混載判定セル]=FALSE), "※2",
IF([順位セル]=3, "※3", "")))



5. 条件付き書式で折り返しマークを追加

上記の方法でフラグ付けができたら、条件付き書式を使って自動的にマークを付けられるように設定します。

このように、順番や混載判定をもとにフラグを立てることで、目的の配車表に近づけることができると思います。

上記は生成AIの解答です。
参考になれば幸いです。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
すぐに上から一つずつやってみます!

お礼日時:2024/11/15 01:40

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A