
No.4ベストアンサー
- 回答日時:
No.2です。
Sheet1の「○」部分は実際は数値だというコトなので・・・
もう一度画像をアップしてみます。
今回は作業用の列を設けて配列数式にしないようにしてみました。
画像のF2セルに
=IF(A2=Sheet2!$A$1,ROW(),"")
という数式を入れオートフィルでずぃ~~~!っとしっかり下までコピーしておきます。
Sheet2のA4セルに
=IF(COUNT(Sheet1!$F:$F)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!$F:$F,ROW(A1))))
このままではSheet1が空白の場合は「0」が表示されてしまいますので、
A4セルの表示形式をユーザー定義から
G/標準;G/標準;
としておきます。
(オプションから「ゼロ値」のチェックを外せば、セルの表示形式には手を加える必要はありません)
これを列方向・行方向にオートフィルでコピーすると画像のようになります。
※ 前回の数式では空白セルに「0」を表示させないようにしたため表示されたデータは文字列になっていました。
次に
>上からコピーして値で張り付ければよいのですが、IDの数が数百ありますので、その都度教えていただいた関数を張り付けるのは大変ですので
に関してですが、
数式はそのままでSheet2のA1セルのIDを入力すればそのデータが表示されます。
仮に、IDすべてを順番に表示したい!という場合は
VBA等別の方法を考える必要があると思います。
この程度でごめんなさいね。m(_ _)m

tom04 様
お世話になりました。
たくさんの回答をいただいたのですが、自分にとって一番理解しやすかったので、tom04様の回答を
ベストアンサーとさせていただきます。
ありがとうございました。
No.6
- 回答日時:
どうやらシート1のB列からE列に入力されているデータは文字列で入力されているようですね。
そのためにシート2に表示されたデータでもSUM関数などが機能しないのですね。データをシート2に取り込む段階で数字を数値に変えるために*1などの工夫をすればよいでしょう。
配列数式などの難しい関数を使うことなく、作業列を作ってい対応することにします。
シート2のA1セルには抽出のためのIDを入力しるとして、シート1ではお示しのようにデータが有るとしたらF4セルには次の式を入力して下方にドラッグコピーします。
=IF(A4="","",IF(A4=Sheet2!A$1,MAX(F$3:F3)+1,""))
そこで抽出の結果をシート2の2行目は項目名として、A3セルには次の式を入力してD3セルまでドラッグコピーしたのちに下方にもドラッグコピーします。
=IF(ROW(A1)>MAX(Sheet1!$F:$F),"",INDEX(Sheet1!$B:$E,MATCH(ROW(A1),Sheet1!$F:$F,0),COLUMN(A1))*1)
文字列に変える手段は他にもいろいろあるでしょう。ただ、シート2で計算ができなかった問題は上記の方法で解決するでしょう。
KURUMITO 様
お礼が遅くなりました。この度はありがとうございました。
また何か質問する機会もあると思います。その時はまたよろしくお願いします。
No.5
- 回答日時:
今仮に、IDは数値データであり、Sheet2においてIDを入力するのがA2セルであり、Sheet2において「条件1」という項目名が入力されているのがA6セルであるものとします。
【方法その1】作業列を使用する方法です。
まず、適当な未使用シート(ここでは仮にSheet3とします)のA4セルに次の関数を入力して下さい。
=IF(AND(COUNTIF(Sheet1!$A:$A,Sheet2!$A$2),INDEX(Sheet1!$A:$A,ROW())=Sheet2!$A$2),COUNTIF(Sheet1!$A$3:INDEX(Sheet1!$A:$A,ROW()),Sheet2!$A$2),"")
そして、Sheet3のA4セルをコピーして、Sheet3のA5以下に貼り付けて下さい。
次に、Sheet2のA7セルに次の関数を入力して下さい。
=IF(ISERROR(1/(INDEX(Sheet1!B:B,MATCH(ROWS($7:7),Sheet3!$A:$A,0))<>"")),"",INDEX(Sheet1!B:B,MATCH(ROWS($7:7),Sheet3!$A:$A,0)))
次に、Sheet2のA7セルをコピーして、Sheet2のB7~D7の範囲に貼り付けて下さい。
次に、Sheet2のA7~D7の範囲をコピーして、同じ列の8行目以下に貼り付けて下さい。
【方法その2】作業列を使わずに、全自動で処理を行いますが、元データの表の行数が数千行にもなる場合には、処理が重くなってしまう方法です。
まず、Sheet2のA7セルに次の関数を入力して下さい。
=IF(OR(ROWS($7:7)>COUNTIF(Sheet1!$A:$A,$A$2),ISERROR(1/(INDEX(Sheet1!B:B,SUMPRODUCT(ROW(Sheet1!$A$3:INDEX(Sheet1!$A:$A,MATCH(9E+307,Sheet1!$A:$A)))*(Sheet1!$A$3:INDEX(Sheet1!$A:$A,MATCH(9E+307,Sheet1!$A:$A))=$A$2)*(COUNTIF(OFFSET(Sheet1!$A$3,,,ROW(Sheet1!$A$3:INDEX(Sheet1!$A:$A,MATCH(9E+307,Sheet1!$A:$A)))-ROW(Sheet1!$A$3)+1),$A$2)=ROWS($7:7))))<>""))),"",INDEX(Sheet1!B:B,SUMPRODUCT(ROW(Sheet1!$A$3:INDEX(Sheet1!$A:$A,MATCH(9E+307,Sheet1!$A:$A)))*(Sheet1!$A$3:INDEX(Sheet1!$A:$A,MATCH(9E+307,Sheet1!$A:$A))=$A$2)*(COUNTIF(OFFSET(Sheet1!$A$3,,,ROW(Sheet1!$A$3:INDEX(Sheet1!$A:$A,MATCH(9E+307,Sheet1!$A:$A)))-ROW(Sheet1!$A$3)+1),$A$2)=ROWS($7:7)))))
次に、Sheet2のA7セルをコピーして、Sheet2のB7~D7の範囲に貼り付けて下さい。
次に、Sheet2のA7~D7の範囲をコピーして、同じ列の8行目以下に貼り付けて下さい。

kagakusuki 様
この度は大変失礼しました。
またお礼が遅くなりました。この度はありがとうございました。
また何か質問する機会もあると思います。その時はまたよろしくお願いします。
No.3
- 回答日時:
>この「○」は実際は数字(1~3)のどれかに変わります。
ウソ情報に伴う典型的な二度手間ですね。
ではとりあえず簡単な方法として、方法1と2のどちらも、数式に「&””」と記入してあるこの3文字を「消去」してください。
2番目の方法ではCtrl+Shift+Enterを忘れず行ってください。
空白欄には数字の「ゼロ」が現れますので、数式を記入したセル範囲を選択
セルの書式設定の表示形式でユーザー定義を開始
#
と設定してOKしてください。
#合計の求め方
ふつーにSUM関数でもとめます
#平均の求め方
=SUM(範囲)/COUNTIF(範囲,">0")
と求めます
それとも。数式が簡単じゃなくてももう構わないからふつーに合計や平均を計算したいなら
方法1では、シート2のA4に
=IF(ROW(A1)>COUNTIF(Sheet1!B:B,$A$1),"",IF(VLOOKUP($A$1&TEXT(ROW(A1),"-000"),Sheet1!$A:$F,COLUMN(C1),FALSE)=0,"",VLOOKUP($A$1&TEXT(ROW(A1),"-000"),Sheet1!$A:$F,COLUMN(C1),FALSE)))
と記入、右にコピー、下にコピーします。
方法2はこれ以上複雑になるとどのみち応用も効かないので、諦めましょう。
keithin 様
この度は大変失礼しました。
またお礼が遅くなりました。この度はありがとうございました。
また何か質問する機会もあると思います。その時はまたよろしくお願いします。
No.2
- 回答日時:
こんばんは!
一例です。
データ量が多い場合はあまりオススメできませんが・・・
↓の画像でSheet2のA4セルに
=IF(COUNTIF(Sheet1!$A:$A,$A$1)<ROW(A1),"",INDEX(Sheet1!A$1:A$1000,SMALL(IF(Sheet1!$A$1:$A$1000=$A$1,ROW($A$1:$A$1000)),ROW(A1)))&"")
これは配列数式になってしまいますので、Shift+Ctrl+Enterキーで確定します。
これを列方向・行方向にオートフィルでコピーすると
画像のような感じになります。
※ この画面から数式をコピー&ペーストする場合は、セルに貼り付けただけでは配列数式になりませんので
貼り付け後数式バー内で一度クリック!
編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り配列数式になります。
※ とりあえずSheet1の1000行まで対応できる数式にしていますが、
もっとデータがある場合は別に作業用の列を設けた方が良いと思います。
参考になりますかね?m(_ _)m

tom04 様
NO.1に回答された方と同じお礼の内容になってしまいますが、申し訳ありません。
ご回答、誠にありがとうございます。ただ、本当にすいません。こちらの説明不足でした。
sheet1の元データに「○」と書きましたが、この「○」は実際は数字(1~3)のどれかに変わります。
教えていただいたやり方できちんとIDごとにソート出来たのですが、それだとsheet2で合計関数や平均関数が使用できないようです。セルの中身が計算式だから??
ここの部分の認識が不足しておりましたので、せっかく教えていただいたのですが、今のままでは厳しいです。本当にすいません。
(上からコピーして値で張り付ければよいのですが、IDの数が数百ありますので、その都度教えていただいた関数を張り付けるのは大変ですので)
その他、何かよい方法はないでしょうか?
No.1
- 回答日時:
非常にしばしば寄せられるご相談の一種で、他の計算ソフトなら簡単にできるものもありますが、エクセルのVLOOKUP関数をはじめとする検索関数は、答えを「1つだけ」しか取ってこれないので、ご質問のようなことを簡単な関数でキレイに片づける方法はありません。
○簡単にVLOOKUP関数でやっつける方法(推奨)
シート1のB列にIDを記述、CからF列にデータを記入
1行目はタイトル行、2行目からデータ
A2に
=IF(B2="","",B2&TEXT(COUNTIF($B$2:B2,B2),"-000"))
と記入、以下コピー。
シート2のA1にIDを記入
シート2のA4に
=IF(ROW(A1)>COUNTIF(Sheet1!B:B,$A$1),"",VLOOKUP($A$1&TEXT(ROW(A1),"-000"),Sheet1!$A:$F,COLUMN(C1),FALSE)&"")
と記入、右にコピー、下にコピー。
○お勧めではない方法
シート1のA:E列に元データ
1行目はタイトル行、2行目からデータ
シート2のA1にIDを記入
シート2のA4に
=INDEX(Sheet1!B:B,SMALL(IF(Sheet1!$A:$A=$A$1,ROW(Sheet1!B:B),9999),ROW(A1)))&""
と記入し、必ずコントロールキーとシフトキーを押しながらEnterで入力
右にコピー、下にコピー。
keithin 様
ご回答、誠にありがとうございます。
すいません。こちらの説明不足でした。
sheet1の元データに「○」と書きましたが、この「○」は実際は数字(1~3)のどれかに変わります。
教えていただいたやり方できちんとIDごとにソート出来たのですが、それだとsheet2で合計関数や平均関数が使用できないようです。セルの中身が計算式だから??
ここの部分の認識が不足しておりましたので、せっかく教えていただいたのですが、今のままでは厳しいです。本当にすいません。
(上からコピーして値で張り付ければよいのですが、IDの数が数百ありますので、その都度教えていただいた関数を張り付けるのは大変ですので)
その他、何かよい方法はないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft Officeを2台目のPCに...
-
マイクロソフト オフィスのサポ...
-
エクセル 日付順に並べてかえた...
-
エクセル 同じ数字を他の列に自...
-
Teams内でショートカットって貼...
-
outlookのメールが固まってしま...
-
エクセルで質問です。 ハイパー...
-
Office2021を別のPCにインスト...
-
Microsoft Formsの「個人情報や...
-
パソコンWindows11 Office2021...
-
大学のレポート A4で1枚レポー...
-
【Excel VBA】PDFを作成して,...
-
別シートの年間行事表をカレン...
-
Officeを開くたびの「再起動メ...
-
会社のOutlookにてメールを予約...
-
Excel 日付を比較したら、同じ...
-
マクロ自動コピペ 貼り付ける場...
-
Excelのセルの重複チェックが出...
-
エクセルで特定のセルの値を別...
-
Excelで〇のついたものを抽出し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Microsoft Officeを2台目のPCに...
-
大学のレポート A4で1枚レポー...
-
Office2021を別のPCにインスト...
-
エクセル 同じ数字を他の列に自...
-
エクセルからメールを作れるか...
-
Microsoft365、ページ設定がで...
-
快活CLUBについて 私用で使う書...
-
パソコンWindows11 Office2021...
-
libreoffice calcで行を挿入し...
-
エクセルで質問です。 ハイパー...
-
outlookのメールが固まってしま...
-
Microsoft Formsの「個人情報や...
-
別シートの年間行事表をカレン...
-
Microsoft Formsでクイズの解答...
-
マクロ自動コピペ 貼り付ける場...
-
Excelで〇のついたものを抽出し...
-
Excel 日付を比較したら、同じ...
-
エクセルで特定のセルの値を別...
-
Officeを開くたびの「再起動メ...
-
office2019 のoutlookは2025年1...
おすすめ情報