学生の成績表を作成している者です。皆様のお知恵を拝借したく、質問させていただきました。
エクセルで学生の学籍番号を入力(A5セル)し、別シート(成績項目CSV)のデータをvlookupで引っ張って来たいと考えています。
学生によって試験の受験回数が異なるので、Ⅷ期を受けた学生はⅧ期の、受けていない学生はⅦ期の…と言うように、最後に受験した試験のデータを引用したいです。
ただし、「A5セルと同キーの最終行の該当セル」にはまた違うデータが入力されているため、XLOOKUPの「検索方法-1」は使えませんでした。
下記の長い関数で動いてはいるのですが、いつ何があって動かなくなるか恐ろしいので、もっとシンプルで分かり易い方法がありましたら是非ご教示ください。
どうぞ宜しくお願い申し上げます。
=IF(VLOOKUP(A5&"Ⅷ期",成績項目CSV!C:Q,15,0)<>"",(VLOOKUP(A5&"Ⅷ期",成績項目CSV!C:Q,15,0)),IF(VLOOKUP(A5&"Ⅶ期",成績項目CSV!C:Q,15,0)<>"",(VLOOKUP(A5&"Ⅶ期",成績項目CSV!C:Q,15,0)),IF(VLOOKUP(A5&"Ⅵ期",成績項目CSV!C:Q,15,0)<>"",(VLOOKUP(A5&"Ⅵ期",成績項目CSV!C:Q,15,0)),IF(VLOOKUP(A5&"Ⅴ期",成績項目CSV!C:Q,15,0)<>"",(VLOOKUP(A5&"Ⅴ期",成績項目CSV!C:Q,15,0)),IF(VLOOKUP(A5&"Ⅳ期",成績項目CSV!C:Q,15,0)<>"",(VLOOKUP(A5&"Ⅳ期",成績項目CSV!C:Q,15,0)),IF(VLOOKUP(A5&"Ⅲ期",成績項目CSV!C:Q,15,0)<>"",(VLOOKUP(A5&"Ⅲ期",成績項目CSV!C:Q,15,0)),IF(VLOOKUP(A5&"Ⅱ期",成績項目CSV!C:Q,15,0)<>"",(VLOOKUP(A5&"Ⅱ期",成績項目CSV!C:Q,15,0)),(VLOOKUP(A5&"Ⅰ期",成績項目CSV!C:Q,15,0)))))))))
参照元シートのイメージは以下の通りです
学籍番号 受験期 ~~~ (15列目)
001 Ⅰ期 不用データ
001 Ⅱ期 不要データ
001 Ⅲ期 該当データ
001 Ⅳ期 空欄
(略)
001 Ⅷ期 空欄
001 総括 不要データ (←これがあるためにXLOOKUPが使えません…)
002 Ⅰ期 不用データ
002 Ⅱ期 不要データ
002 Ⅲ期 不要データ
002 Ⅳ期 該当データ
No.8
- 回答日時:
馬鹿の一つ覚へ的なVLOOKUPを使は無い別解です。
邪魔臭い範圍 C3:C16 を空白にして居ます。(*^_^*)
添附圖參照
1.<前同>セル C2 を選擇⇒Alt+AVV⇒[入力値の種類]として“リスト”を選擇⇒[元の値]ボックス内にマウスカーソルを放り込んで、範圍 B4:B12 を撫で撫で⇒[OK]
2.範圍 A3:I500 を選擇⇒Alt+MC⇒“上端行”だけにチエック入れ⇒[OK]
3.セル G3 に次式を入力
 ̄ ̄=IFERROR(INDEX(コメント,SUMPRODUCT((学籍番号=C1)*(受験期=C2)*ROW(学籍番号))-3)&"","")
詳細なご指示ありがとうございます。図もあり大変分かり易いです。
作業手順1は実施できました。リストを作るのにこんなに便利な方法があったのですね!一つ勉強になりました。
ところが、作業手順2を実施しようとすると、「現在の’B'の設定と置き換えますか?」というメッセージが表示され、はいを選んでもいいえを選んでも同メッセージが消えず、キャンセルするしかない状態です。
どうすればよいか引き続きご教示いただけますでしょうか。
No.7
- 回答日時:
添附圖參照
1.セル C2 選擇⇒Alt+AVV⇒[入力値の種類]として“リスト”を選擇⇒
 ̄ ̄[元の値]ボックス内にマウスカーソルを放り込んで、範圍 B4:B12 を
 ̄ ̄撫で撫で⇒[OK]
2.セル G1 に次式を入力
 ̄ ̄=IFERROR(VLOOKUP(C1&C2,C4:I16,7,FALSE)&"","")
No.4
- 回答日時:
》 (←これがあるためにXLOOKUPが使えません…)
「これ」とは「不要データ」と云ふ文字列データの事ですか?
呈示された“寿限無”式を解讀する元氣は無いし、正常に「動いてはいる」のなら囘答者にヒケラカス必要も無いでせう。
其れより貴方が期待する式の戻り値だけを何処にどの樣に表示させるのかを明記されたし!
「これ」が“該当データ”とか“空欄”であれば、だう成るンですか?
私の添附圖の[摘要]欄で、計算に必要なデータはドレドレですか?
No.2
- 回答日時:
いくつかの作業セルの列をつくって、いくつかに作業を分割した方がよくないですか?
そしてその作業セルの列を非表示にすれば、使い勝手はかわりません。
この長い関数の列をみたらクラクラとします。
No.1
- 回答日時:
》 「A5セルと同キーの最終行の該当セル」
「同キー」の意味は?
》 XLOOKUPの「検索方法-1」
XLOOKUPって何の事?貴方の Excelのバージョンは何?
因みに私のは Excel 2019 です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) Formulaプロパティーを使ってセルに数式を組んだのですが簡潔にしたい。 3 2022/08/21 20:51
- Excel(エクセル) マクロを簡潔にしたい 6 2022/09/16 10:37
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- その他(プログラミング・Web制作) Windowsのバッチファイルについてご教示ください 5 2023/07/25 20:23
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) エクセルの関数 2 2023/01/17 15:24
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- その他(Microsoft Office) VBA CSV出力について 3 2023/04/19 14:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの関数について教えてくだ...
-
エクセルファイルがファイルの...
-
一つのセルに(例えばA1)入力...
-
エクセル vbaについて教えてく...
-
Excel 複数列 A列B列C列一致 D...
-
【マクロ】名前を保存する際に...
-
Excelについて教えてください
-
エクセル マクロ チェックボックス
-
エクセルであるセルに数字を入...
-
【Excel】数字を3倍にし、なお...
-
エクセル共有したが、アクセス...
-
【マクロ】顧客番号にて一致さ...
-
Excel分析ツールでのポアソン回...
-
エクセルで年休を管理する方法...
-
エクセルのデーターが2か月前の...
-
LOOKUP関数を使えばいいのでし...
-
エクセル②
-
エクセルを使っていて2024/5/15...
-
Excelでセルの値が同じか...
-
エクセルでの作業計算方法について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報
》「同キー」
A5セルと同じ内容が入っている別シートのA列のセルが複数あります、と言う意味です。
(例えば学籍番号001が全部で9行あります)
》XLOOKUPの「検索方法-1」
XLOOKUPの検索方法で「下から検索」と言うものがあり、それを使うと一番下のセルを引用できるのですが、一番下のセルのデータではなく、その次に新しいデータを引用したいのです。
情報不足で申し訳ありません。
Excel2016を使用しております。
画像が添付できることに気付いておりませんでした。
分かりにくい説明で申し訳ありません。
改めて状況をお伝えいたします。
画像のA列の学籍番号を利用して、I列のコメントを引っ張って来たいです。
(C1に「202001」だけを入力し、G1に「すばらしい!」を表示したい。実際は別シート)
なぜC1に「202001Ⅳ期」と入力できないかと言うと、学生によって最終受験期がバラバラなので、
どの学生に何期と入力すればいいか分からないからです。
そのため、「202001」と入力し、A列に「202001」と入力されているもの(図の4~12行)の中から、一番下から2つ目のコメント(I7)を返したいと考えました。
一番下には「総括」行があるため、「一番下のデータを返す(xlookupの逆から検索)」は使えませんでした。
(補足続きます)
質問本文の寿限無式は、
「202001Ⅷ期で検索して、あればその行のI列のデータを返してね、
なかったら202001Ⅶ期で検索して、あればその行のI列のデータを…
…(中略)…202001Ⅰ期で検索して、その行のI列のデータを返してね」
と、IF検索をひたすら繰り返しているものです。
とてもじゃないけれど良い状態とは言えません。力技です……。
しかし自分にはお恥ずかしながらこれしか思いつかなかったのです…。
そこで皆様のお知恵を拝借したいと質問させていただきました。
エクセルのバージョンは2016です。
どうぞ宜しくお願い申し上げます。
》mike_g様
詳細かつ分かり易い説明をありがとうございます。
仮名遣いが独特でいらっしゃるので、明治時代から
タイムスリップしてきた方にパソコンのことを習っているようで、
なんだか楽しいです。勝手に明治先生とお呼びしています。
仰る通りに「ツンツンして全名前を選択⇒[削除]⇒[OK]⇒[閉じる]」をしましたら、
先の手順が実行できました!
教えていただいた数式もちゃんと動きました。
ただ、私の説明不足で、やりたいことをきちんとお伝えできていなかったようで…
次の画像の場合、「2020001」の学生はI7の「チョベリグ!」を、
「202002」の学生の場合はI14の「ようやった」を表示させたいのです。
学生によって最終受験期が違うので、それぞれの最新コメントを拾って来たい、
という訳です。
またご教示いただけますでしょうか。
Excelのバージョンは2016です。