No.2ベストアンサー
- 回答日時:
先ず、貴方の「添付画像のようなデータ」のブックに名前を付けて保存しておいて
ください。
1.シート「一覧」の範囲 A1:D1 を選択 ⇒ Ctrl+C ⇒ シート名「野菜」をツン
 ̄ ̄ ⇒ Shiftキーを抑えたままでシート名「果物」をツン (2つのシート「野菜」
 ̄ ̄「果物」が同時に選択状態)⇒ セル A1 を選択して Ctrl+V をパシーッ
2.シート2枚「野菜」「果物」が選択状態のままで、セル A2 に次式を入力し
 ̄ ̄て、右3列にオートフィル ⇒ 範囲 A2:D2 を下方にズズーッと(取り敢えず
 ̄ ̄10行くらいネ)オートフィル
 ̄ ̄ =IFERROR(INDEX(一覧!A:A,SMALL(IF(一覧!$B$1:$B$100=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,9),ROW($A$1:$A$100)),ROW($A1))),"")
3.シート名「一覧」をツン (→「野菜」「果物」の同時選択状態が解除され、
 ̄ ̄「一覧」だけがアクティブになる)
4.確認するために、次の2行を追加して、シート「野菜」、「果物」を確認する
 ̄ ̄(添付図下段のように変化していませんか?)
 ̄ ̄ ̄ ̄5_野菜_キュウリ_120
 ̄ ̄ ̄ ̄6_果物_ブドウ__123
早速のご回答ありがとうございます!
返信遅くなってすみません。m(__)m
はじめはうまくいきませんでしたが、式をCtrl+Shift+Enterでやってみたらうまくいきました。
ありがとうございます。
No.3
- 回答日時:
MATCH関数とINDEX関数の組み合わせかな。
B列に”野菜”と入力されたセルの位置をC列やD列を参照するINDEX関数に渡して値を読み取る。
幸いなことにA列に番号が振ってあるので、その番号を使って参照する範囲をずらすことができます。
MATCH関数とINDEX関数で検索する範囲をOFFSET関数で指定すると良いでしょう。
G2セル
=IFERROR(INDEX(A:A,MATCH($F$1,B:B,0),),"")
G3セル
=IFERROR(INDEX(OFFSET($A$1,G2+1,0,1000,1),MATCH($F$1,OFFSET($B$1,G2+1,0,1000,1),0),),"")
H2セル
=IFERROR(INDEX(C:C,MATCH($G2,$A:$A,0),),"")
I2セル
=IFERROR(INDEX(D:D,MATCH($G2,$A:$A,0),),"")
H3,I3セルはH2,I2セルを複製するだけです。
以後、4行目位以降は3行目のG3,H3,I3セルを複製すれば楽に拡張できます。
・・・
やっていることは面倒なだけで難しいことはやっていません。
まず、G2セルには基準になる数式を作ります。
ここに一番初めに見つかるデータの「No.」を表示させるのです。
以後、この値を使って各データを拾います。
G2セルには
MATCH関数でB列に「野菜」(F1セルの値)が上から何番目にあるかを調べさせます。
MATCH($F$1,B:B,0)
(写真の例では”にんじん”が2行目に見つかるので”2”が返ります)
INDEX関数にこの”2”を使いA列の上から”2”行目にある値を拾います。
INDEX(A:A,MATCH($F$1,B:B,0),)
(写真の例では”1”が返ってきます)
値が見つからなかった場合を想定して、IFERROR関数を使い、値が見つからないエラーが返ってきたときに空白を代わりに表示させるようにします。
(写真の例ではエラーにならないので”1”が表示されています)
同様にG3セルや他のセルも難しいことはしていません。
文章にすると小難しく見えますが、一つ一つの関数が何をしているのかを考えると実は面倒なだけで難しくはないことが分かると思います。
・・・
他のシートに表示させたいということですので、
写真のように作成したら、該当箇所を「切り取り」して対象のシートに「貼り付け」てください。
「野菜」の部分を「果物」に変えたシートが必要なら、この貼り付けた個所を今度は「コピー」して新しいシートに「貼り付け」てください。
その後に「野菜」を「果物」に書き換えるだけです。
もし「No.」の表示が不要ならば、「No.」の列を非表示にしてください。
この部分の数式を他の数式に組み込むこともできますが、凄く面倒なことになります。
(配列数式を使って処理をすることになるのでメンテナンスが凄く大変なことになるんです)
早速のご回答ありがとうございます!
返信遅くなってすみません。m(__)m
仰る通り文章だと難しそうでしたが、出来ました。
ありがとうございました。
No.1
- 回答日時:
こんにちは!
一例です。
↓の画像のように元データは「一覧」Sheetにあるとします。
各シートともやり方は同じです。
A1セルに「種別」名を入力しておきます。
画像ではA4セルに
=IFERROR(INDEX(一覧!A$1:A$1000,SMALL(IF(一覧!$B$1:$B$1000=$A$1,ROW(A$1:A$1000)),ROW(A1))),"")
配列数式なので、Ctrl+Shift+Enterで確定!(←必須★)し
フィルハンドルで列・行方向にコピーすると画像のような感じになります。
※ もちろん同じ操作を各シートで行っても構いませんが
この方法だと「種別」ごとのSheetは不要でA1セルの「種別」を入れ替えるだけで
結果が表示されます。
この場合はA1セルに入力規則のリスト設定をしておけば簡単に表示が変わります。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 11:55
- Excel(エクセル) VBAで、シート間の転記するコードを教えてください。 4 2023/03/26 10:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Excel(エクセル) エクセルの表示形式について教えてください あるセルの「A」という値と、別のセルの「B」という値を組み 4 2023/02/21 21:55
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル初心者です 関数の入れ...
-
Microsoft1Officeの互換ソフト...
-
Excel ピボットテーブルで日付...
-
エクセル関数を教えてください
-
【マクロ】その時、その時で変...
-
【マクロ】読取専用のファイル...
-
LOOKUP関数を使えばいいのでし...
-
エクセル 白黒印刷で白線を印刷...
-
【関数】先頭だけにある、半角...
-
【関数】適切な文字数の数字を...
-
Excelのチェックボックスの使い...
-
エクセルでの作業計算方法について
-
Excelのpivotについて質問です
-
WPS OFFICEでの縦書きについて
-
時間によってファイル名が変わ...
-
エクセルのセルに同じ大きさの...
-
Aというブックの1というシート...
-
エクセルの順位別一覧表の自動...
-
西暦や和暦の表示をyyyymmdd表...
-
【マクロ】エクセルにかいてあ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報