アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2003の関数だけで、表1の中からグループをリスト選択した順にグループ別の表へ抽出したいのですが、やり方が判らないので教えて頂けないでしようか。

表1のリストから選んだグループ名をキーにして、vlookupとcountを使って、グループ別の表へ抽出はできたのですが、並び順が表1の出現順(上から)にしかできず悩んでいます。




表1
名前 グループ ↓リストで選択した順番
佐藤 グループA 2
鈴木 グループB 1
吉田 グループA 3
田中 グループC 2
小島 グループA 1
丸山 グループC 1
小野 グループB 2
. .
. .

以下の様に各グループの表を並び替え

グループA
小島
佐藤
吉田

グループB
鈴木
小野

グループC
丸山
田中

よろしくお願いします。

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

  • 関数で自動的に振り分けしたいのですが無理でしょうか?

      補足日時:2018/06/18 16:15
  • 回答ありがとうございます。

    グループ内の並び替えをセルで指定するのでは無くて、入力規則のリストから選択した順番で振り分けたいのですが、関数だけでは無理でしょうか?

    No.2の回答に寄せられた補足コメントです。 補足日時:2018/06/18 16:34
  • 回答ありがとうございます。
    説明が足りなかったですm(_ _)m
    ドロップダウンリストからグループを選択してグループごとに別ける事は出来たのですが…
    ドロップダウンリストの選択順で並び替えたいのです。

    No.3の回答に寄せられた補足コメントです。 補足日時:2018/06/18 16:49
  • C列は順番を判りやすい様に明記しただけで実際には存在してないです。
    またSheet1のグループの列にドロップダウンリスト設定してあります。

    表1でグループ名を選択すると、選択したグループ名の出現順にナンバリングした数字、選択されたグループ名 を結合したキーで抽出する様にはできますが、ナンバリングを出現した(昇順)ではなくで…

    5小島 佐藤 吉田 と グループAを選択した順番に並び替えて、グループAの表に表示したいのです。

    No.4の回答に寄せられた補足コメントです。 補足日時:2018/06/18 19:15
  • 各グループの並び替えの順を、予め別セルに指定しないで、その都度変えたかったので、ドロップダウンリストの選択順と結びつけたのですが…

    予め順番を指定しないで、表1で毎回グループAを指定した順(昇順ではなくて 1行目 5行目 3行目 、3行目 2行目 1行目 など)で抽出して、グループAの表に表示することは可能でしょうか。

    No.5の回答に寄せられた補足コメントです。 補足日時:2018/06/18 19:53
  • そうですか、選択順番もプルダウンリストで選択する方法で、指定しようと思います。ありがとうございました。

    No.8の回答に寄せられた補足コメントです。 補足日時:2018/06/18 21:59
  • 今作っているものに1番近いtom04さんをベストアンサーにしようと思います。

    回答してくださった方、ありがとうございました。

      補足日時:2018/06/18 22:14

A 回答 (8件)

並ぶ替えとフィルタ


https://photos.app.goo.gl/MHMGCCUwQoxzBpDH6
    • good
    • 0

こんにちは!



表1の「順番」は必ず1から始まるとします。
一例です。
↓の画像のような配置で元データはSheet1にあり、Sheet2のA1セルに「グループ名」を入力すれば
A4セル以降に表示されるようにしてみました。

Sheet2のA4セルに
=IF(COUNTIF(Sheet1!B:B,A$1)<ROW(A1),"",INDEX(Sheet1!A$1:A$1000,MATCH(ROW(A1),IF(Sheet1!B$1:B$1000=A$1,Sheet1!C$1:C$1000),0)))

配列数式なので、Ctrl+Shift+Enterで確定!(←必須★)しフィルハンドルで下へコピーしています。

これでA1セルを入れ替えるだけで各グループの順番の小さい順に表示されると思います。m(_ _)m
「表の中からグループを選択した順で抽出する」の回答画像2
この回答への補足あり
    • good
    • 0
この回答へのお礼

順番もドロップダウンリストから選択する方法で、考えていた事を実現できそうです。 ありがとうございました。

お礼日時:2018/06/19 09:56

こんにちは



セル位置が不明なので、添付図のように仮定しました。

仮に、E列、F列、G列にそれぞれのグループを抽出するものとして、E2セルに
=IFERROR(INDEX($A$1:$A$100,MOD(SMALL(IF($B$2:$B$100=E$1,$C$2:$C$100*100+ROW($2:$100)),ROW(A1)),100)),"")
の式を入力し、Ctr+Shift+Enterで確定。(←配列数式なので、確定は必須です)
添付図では、確定後、下方、右方にフィルコピーしています。

※ 順位が同じものがある場合には、上の行の値が先に表示されます。
※ 対象範囲は、とりあえず2~100行としてあります。
「表の中からグループを選択した順で抽出する」の回答画像3
この回答への補足あり
    • good
    • 0

No.2です。



補足の内容がイマイチよく判らないのですが、
>入力規則のリストから選択した順番・・・
とはどの列に「入力規則」のリスト設定をしているのでしょうか?

普通に考えれば前回アップしたSheet2のA1セルがリスト設定してあり、
グループA~グループC をリストで選べるようにしてある!と判断するのが一般的だと思います。
(当方だけがそう思い込んでいるのかも)

その辺が判らないとこちらで勝手に判断して、回答しても無意味なような気がします。

それともSheet1のグループの列にリスト設定してあり、
グループを選択するたびに、C列の順番を増やしたい!という意味なのでしょうか?

ただその場合はC列は単純に昇順にナンバリングされると思うのですが。m(_ _)m
この回答への補足あり
    • good
    • 0

No3です



>ドロップダウンリストの選択順で並び替えたいのです
入力値がどのように入力されたかということは、本質的な問題ではありません。
試してみればわかることですが、入力値を入力規則で入力しても、手で直接入力しても、セルの値がそのようになっている限りは関数の結果は同じになります。(No2様の回答も同様のはずです)

ついでに補足訂正を。
No3で『対象範囲は2~100行に設定』と書いてしまいましたが、厳密には2~99行です。
(100行まで使うと、順序判断が正しくない場合がある。)
範囲を広げたい場合は、式中の「行番号*100」と「Mod関数の除数(100)」の部分を1000や10000に増やしてゆくことで可能になります。(エクセルの有効桁数の範囲内であることが必要です)
この回答への補足あり
    • good
    • 0

> 表1のリストから選んだグループ名をキーにして、vlookupとcountを使って、グループ別の表へ抽出はできたのですが、並び順が表1の出現順(上から)にしかできず悩んでいます。



出来たところまででよいので当該エクセルシートを(原本が無理なら疑似シートでも)、[Windowsマーク][Windows アクセサリ][Snipping Tool]で画面キャプチャして、補足に画像添付してください。
※投稿前に [確認する] でつぶれが無いか画像サイズをよく確認して、[投稿する] で投稿してください。つぶれがある場合は、行列数を少なくするか、セルサイズを小さくするなど調整してください。
    • good
    • 0

添付図参照


Sheet1 において、
1.式 =B2&"_"&C2 を入力したセル D2 を下方にオートフィル

Sheet2 において、
2.次式を入力したセル A2 を右方および下方にオートフィル
 ̄ ̄ =IFERROR(INDEX(Sheet1!$A$2:$A$8,MATCH(A$1&"_"&SMALL(IF(Sheet1!$B$2:$B$10=A$1,Sheet1!$C$2:$C$10,""),ROW(A1)),Sheet1!$D$2:$D$8,0)),"")
 ̄ ̄【お断り】上式は必ず配列数式として入力のこと
「表の中からグループを選択した順で抽出する」の回答画像7
    • good
    • 0
この回答へのお礼

グループ全体を1つのシートでは無く、それぞれ別シートに抽出したかったのですが、考え方は判りました。ありがとうございました。

お礼日時:2018/06/19 09:50

No5です。



よくわかりませんが、操作手順で順序を決めたいということでしょうか?

もしそうであるなら、通常の関数では実現できないでしょう。
関数は静的に計算できる内容しか反映できませんので。
VBAを用いれば不可能ではありません。
この回答への補足あり
    • good
    • 0
この回答へのお礼

関数でどこまでできるか判らなかったので勉強になりました。
ありがとうございました。

お礼日時:2018/06/19 09:40

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