dポイントプレゼントキャンペーン実施中!

【誰か助けてください!!】
スプレッドシートで抽出したい値があるのですが、上手く関数を組めません。
出来ればqueryでくみたいと思っていますが、queryは無理もしくはこっちの方が簡単だよという事であればqueryじゃなくても大丈夫です。

■抽出内容
添付の画像をご覧いただきたいのですが、表Aから表Bのリストと一致する作業者の一番、古い?若い?の作業時刻のみを抽出したいです。
※画像はExcelですが気にしないでください

宜しくお願い致します。

「スプレッドシートで抽出したい値があります」の質問画像

A 回答 (3件)

>出来ればqueryでくみたいと思っていますが、・・・



query関数でも他の関数でも実現できると思います。
なお、表Aの実際の行数が不明ですので、各数式は行数を異なるものにしていますが、ご質問者の実情にあわせて調整してください。

添付画像①をご覧ください。、G4セルに

=query($B$4:$C$1000,"select * where C='"&E4&"' order by B asc limit 1")

という数式を記述し、下方向へコピーしています。
これで、G列、H列に結果が表示されます。
filter関数を使用した例として、K4セルに

=E4

を記述し、さらにJ4セルに

=IF(K4="","",Min(filter($B:$B,$C:$C=K4)))

という数式を記述して、J4:K4を下方向へコピーしています。
また、filter関数を使用しない方法としては、N4セルに

=E4

を記述し、さらにM4セルに

=ArrayFormula(IFERROR(1/Large(IFERROR(($C$4:$C$100=N4)/$B$4:$B$100,0),1),""))

という数式を記述し、M4:N4を下方向へコピーしています。
いずれの方法でも、ご質問者のご希望の表が作成されると思います。
「スプレッドシートで抽出したい値があります」の回答画像3
    • good
    • 2

こんにちは



エクセルではなさそうだという事はわかりますが、何のスプレッドシートでしょうか?
以下は、仮にgoogleのスプレッドシートとしての回答です。

◇関数の場合
FILTER関数が使えるらしいので、作業者でフィルターした結果のMINを取ればできませんか?
https://support.google.com/docs/answer/3093197

◇queryの場合
queryの方は、仕様を知らないので、大雑把な当てずっぽですが・・
 select min(作業履歴), 作業者名 group by 作業者名
みたいな感じではないでしょうか?
https://developers.google.com/chart/interactive/ …
ご存じとは思いますが、queryの場合は、エンコードが必要らしい(?)のでご注意ください。


※ スプレッドシートは使っていないので、ドキュメントをざっと調べてみただけです。
※ 実際の確認はできておりませんが悪しからず。
    • good
    • 1

こちらが参考になるのでは?


https://monoblog.jp/archives/393

作業者名でグルーピングし、作業履歴で並び替え(不要であれば抜き)limit句で1(最初の1行)を選択で取り出したい列を指定。。。

かも?
スプレッドシートは経験皆無なので自信はありません!が多分そんな感じかなと。
    • good
    • 1

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