自己紹介
初めての記事投稿なので軽く自己紹介をさせていただきます。
ニートから実家を出て初めての一人暮らし・正社員生活を始めました24歳すずです。
IT業界未経験ですが、現在勉強中です!
Excelの関数すら作れない
はい、元ニートなのでExcelはほぼ使ったことがありません。
しかし、弊社では講習会を行っているので安心です!
Excel講習会では以下の課題が出されました。
500人分のテスト結果が入力されたデータから、平均点の算出や合否判定などを実施します。
別に”課題回答欄”シートがあり様々な問題が記載されています。まずは基礎の問題から始めて、その後に応用問題となっています。進めていく中で躓いた応用問題がこちらです。
…こんなの作れるわけがない!!
chatGPTに作ってもらおうぜ
というわけでchatGPTに泣きつきました。
以下の条件で関数を作成してください。
1)合計点が300点以上 →出身地が"東京" →3教科(国語・数学・英語)の平均点
→出身地が"東京"以外 →3教科(国語・数学・英語)の合計点
2)合計点が300点より低い →出身地が"東京" →2教科(社会・理科)の合計点
→出身地が"東京"以外 →2教科(社会・理科)の平均点
ただし関数のシートと名簿のシートがあるものとし関数のシートに名前書くと名簿シートからvlookupで検索してくるものとする
上記への回答で作成してくれた関数が以下となります。
=IF(VLOOKUP(A2, 名簿シートの範囲, 2, FALSE) = "東京",
IF(SUM(VLOOKUP(A2, 名簿シートの範囲, {3, 4, 5}, FALSE)) >= 300,
AVERAGE(VLOOKUP(A2, 名簿シートの範囲, {3, 4, 5}, FALSE)),
SUM(VLOOKUP(A2, 名簿シートの範囲, {3, 4, 5}, FALSE))
),
IF(SUM(VLOOKUP(A2, 名簿シートの範囲, {6, 7}, FALSE)) >= 300,
SUM(VLOOKUP(A2, 名簿シートの範囲, {6, 7}, FALSE)),
AVERAGE(VLOOKUP(A2, 名簿シートの範囲, {6, 7}, FALSE))
)
)
いやほしいやつと違う!
何回も注文付けた結果
欲しい内容と違ったので、詳細な条件を加えて以下の内容を送りました。
- 名簿シートはB列から
名前 性別 出身地 国語 社会 数学 理科 英語 合計点
の順で合計点を参照してほしいです- 名簿シートの合計点が記載されている列はJ列です
合計点が300点以上かどうかを判定するときはそれを使ってくれませんか- 名簿シートの範囲を絶対参照でB3からJ502 名前入力欄をA40を参照するように書き換えてください
- ごめんなさい名前入力欄は相対参照でお願いいたします
- 名簿シートの名前は データ です
- 300点以上の場合は東京なら平均点
東京以外ならば合計点
300点未満の場合は東京なら合計点
東京以外ならば平均点
としてください- 300点未満の場合には社会と理科の合計点、平均点を計算するように修正してください。
社会の列は5です。
そしてついに…!!
=IF(VLOOKUP(A40, データ!$B$3:$J$502, 9, FALSE) >= 300,
IF(VLOOKUP(A40, データ!$B$3:$J$502, 3, FALSE) = "東京",
AVERAGE(VLOOKUP(A40, データ!$B$3:$J$502, {4, 6, 8}, FALSE)),
SUM(VLOOKUP(A40, データ!$B$3:$J$502, {4, 6, 8}, FALSE))
),
IF(VLOOKUP(A40, データ!$B$3:$J$502, 3, FALSE) = "東京",
SUM(VLOOKUP(A40, データ!$B$3:$J$502, {5, 7}, FALSE)),
AVERAGE(VLOOKUP(A40, データ!$B$3:$J$502, {5, 7}, FALSE))
)
)
欲しい回答が得られました。きっと模範回答もこれなのかなと…。
A40には名前が入ります。
課題終わったよありがとうChatGPT
最後に
当たり前ですが、どんな設計としたいかがきちんと伝わっていないと本当に欲しいものは作れないことがよく理解できました。
今回はこちらがどう伝えるかということが課題でしたが、世の中のエンジニアの方々は相手の要望を汲み取っているのだなと実感できました。
こういったノリでやってみたことや勉強したことを書いていこうと思いますので、これからもよろしくお願いします!
(ちなみに課題カンニングしたのはすぐばれると思うので今のうち謝っておきますごめんなさい)