• ベストアンサー

エクセルの関数でお願いいたします

Sheet1のデータを元にしてSheet2に記入した内容のように記録できる関数があれば教えて下さい。 どうか宜しくお願いいたします。 Sheet1 1 A       B     C 2 管理NO   種目     得点 3 250     リレー     54 4 250     玉入れ     35 5 253     綱引き     23 6 257     玉入れ     86 7 257     100m      24 8 257     サッカー    40 9 262     ハンマー投げ  34 Sheet2 1  A     B     C     D     E     F     G 2  管理NO 種目   得点   種目   得点   種目   得点 3  250   リレー   54   玉入れ   35 4  251 5  252 6  253   綱引き   23 7  254 8  255 9  256 10  257   玉入れ   86  100m  24  サッカー 40 11  258 12  259 13  260 14  261 15  262  ハンマー投げ 34 16  263

質問者が選んだベストアンサー

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.5

シート2のB3セル(リレーが表示されるセル)に以下の式を貼り付けます =INDEX(Sheet1!$B:$B,SMALL(INDEX(SUBSTITUTE((Sheet1!$A$1:$A$100=$A3)*1,0,10^5)*ROW(Sheet1!$A$1:$A$100),),COLUMN(B3)/2)) 同様にシート2のC3セル(54が表示されるセル)に以下の式を貼り付けます。 =INDEX(Sheet1!$C:$C,SMALL(INDEX(SUBSTITUTE((Sheet1!$A$1:$A$100=$A3)*1,0,10^5)*ROW(Sheet1!$A$1:$A$100),),COLUMN(C3)/2)) B3、C3を右方向、および下方向にコピーしてください。求める結果になるはずです。ただしこの式では「表示するものがないセル」は#REF!エラーになります。 エラーを回避するにはIF条件を追加します。B3セルの式は =IF(SMALL(INDEX(SUBSTITUTE((Sheet1!$A$1:$A$100=$A3)*1,0,10^5)*1,),COLUMN(B3)/2)=1,INDEX(Sheet1!$B:$B,SMALL(INDEX(SUBSTITUTE((Sheet1!$A$1:$A$100=$A3)*1,0,10^5)*ROW(Sheet1!$A$1:$A$100),),COLUMN(B3)/2)),"") C3セルの式は =IF(SMALL(INDEX(SUBSTITUTE((Sheet1!$A$1:$A$100=$A3)*1,0,10^5)*1,),COLUMN(C3)/2)=1,INDEX(Sheet1!$C:$C,SMALL(INDEX(SUBSTITUTE((Sheet1!$A$1:$A$100=$A3)*1,0,10^5)*ROW(Sheet1!$A$1:$A$100),),COLUMN(C3)/2)),"") です。動作は確認済みですが、シート1のデータが100行以上ある場合は式中の「A$1:$A$100」を書き換えてください

youmack
質問者

お礼

本当に大変感謝いたします。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

ピボットテーブルではダメですか? 管理NO 100m サッカー ハンマー投げ リレー 玉入れ 綱引き 総計 250                        54   35        89 253                             23     23 総計   24   40     34      54   121  23     296 こんな感じになりますが?

youmack
質問者

お礼

ピボットテーブルですと実はこの次の作業で(自分にとっては)難しくなります。 ご回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • suekun
  • ベストアンサー率25% (369/1454)
回答No.3

#1さんがお答えの様に、この回答方法では答えを伝えるのは 至難の業ですね。 考え方として、シート2のB列は、A列の管理番号がシート1にあるか 検索してあったら種目を拾うって感じです。 D列は、二つ目の管理番号同数があるか検索します。 C列もE列も、それぞれ対応する種目が空白でなければ値を拾いに 行けば良いと思いますよ。 一つだけ、関数は値を参照しているだけなので、シート1の値が 変化したらシート2の値も変化します。 つまりそのままでは、「記録」にはなりません。 値に直して貼り付け直すって作業が必要になります。

youmack
質問者

お礼

参考にさせて頂きます。 質問の内容で足りなかった所もありましたがアドバイスもいただきありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 sheet2のA列は、管理NOが設定済みとします。 (1)sheet2のB2に=IF(COUNTIF(Sheet1!$A:$A,$A2)>INT(COLUMN()/2)-1,INDEX(Sheet1!$B:$B,SMALL(IF(Sheet1!$A$1:$A$100=$A2,ROW(Sheet1!$A$1:$A$100),99999),INT(COLUMN()/2))),"") (2)sheet2のC2に=IF(COUNTIF(Sheet1!$A:$A,$A2)>INT(COLUMN()/2)-1,INDEX(Sheet1!$C:$C,SMALL(IF(Sheet1!$A$1:$A$100=$A2,ROW(Sheet1!$A$1:$A$100),99999),INT(COLUMN()/2))),"") 配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。 (3)B2:C2を選択して必要分縦横にコピーして下さい。

youmack
質問者

お礼

また今後の参考にさせて頂きますありがとうございました。

youmack
質問者

補足

大変お世話になります。 自分のやり方が悪かっかも知れませんが、エラーがでました。 最初の質問内容でシートの行が1つずれていたのが悪かったと思います。次回から気をつけます。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

エクセルの関数で (1)表の組み換え 縦のものを横に 且つ (2)管理NOの出現の数が不定など (3)さらに出てこない管理番号は出すけれども内容は飛ばす の組み換えは苦手です。式が極端に複雑になるか、作業列を使って 複雑といったことになります。初級中級の課題ではない。 軽く考えないで。本質問が丸投げである上に、回答者の答えの丸写しになるだけです。 ーー VBA向きの課題だが、VBAでも中級を超える技量が要る。 VBAが出来ないならあきらめて下さい。

youmack
質問者

お礼

早速のご回答大変在り難く存じます。 内容が大変な難題であったという事を察せずにご迷惑をお掛けいたしますた。こちらも大変心苦しく感じます。 次回また機会がありましたら、分かる回答で宜しくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 体育大会の種目のアイデアをください!

    体育大会の種目をひとつ考えることになりました。 この時期、似たような質問もみかけるのですが、 (1)中学生で (2)30人くらいでできて (3)勝ち負けがつく こんな条件で何かいいアイデアがありましたら教えてください。 すでに、全員リレーと長縄はやることになっています。 綱引きと玉入れは他の学年がやるそうなので、選べません。 みなさんがこれまで見てきた&やってきた種目で楽しく熱いヤツをお願いします!

  • 中学校・高校の体育祭(体育大会)の種目について

    皆さんの中学校、高校の体育祭にはどのような種目がありますか?また、学校独自の種目などはありますか?季節外れですが、ぜひ教えてください。 私の中学校では… 個人種目:100m走、200m走、400m走、1500m走、走り高跳び、走り幅跳び、ハンドボール投げ、スウェーデンリレー、学級対抗選抜リレー 団体競技:台風の目、ムカデ競走、綱引き、(以上学年競技)、大縄跳び、二人三脚リレー、教員リレー …でした。(特にこれといった特殊な種目はなくて…)皆さんの学校のこともぜひ教えてください!

  • 陸上の各種目のアジア記録を教えて下さい

    陸上の各種目の世界記録はわかるんですが アジア記録が見つかりません 教えて下さい 男子100m走のアジア記録はカタール人、男子100m×4リレーは日本人、男子ハンマー投も日本人 くらいしかわかりません

  • エクセル関数について

    いつもお世話になります。 ”管理”と”リスト”というシートがあります。 ”管理”シートは A1    B1    C1・・・・・ 番号   名前   住所・・・・ と、情報が管理してあります。 ”リスト”シートのB3に番号を入力するセルを作りB11に =IF($B$3="","",VLOOKUP($B$3,注文管理!$A$3:$AE$9880,31)) という関数を入れて、”管理”シートの該当セルに記入があるなら B11に返すようにしています。B11に答えが返った場合、D4に「★備考あり★」と返したいのですが、 =IF(B11>1,"★備考あり★",IF(B11<1,"")) の関数を使うと、もともとB11には関数が入っているのでずっと「★備考あり★」のままです。 これを、B11に答えが返ってきた時のみ「★備考あり★」とする関数はありますか?

  • 女子陸上の難易度[世界レベル]

    世界陸上を見て以下のことを疑問に思いました。 陸上という競技は、多くの種目に細分化されています。100m、800m、ハンマー投げ等。これらを考えると、一つ一つの種目の競争率というのはかなり低いのではないかと思いました。さらに、これが女子ならば世界レベルで見ても一つの種目に何人が取り組んでいるのだろうかというレベルだと思います。例えば女子ハンマー投げです。みなさんは今まで生きてきてハンマー投げを本格的にしている女子を身近で見た事ありますか? そこで、これらのマイナー陸上種目女子で金メダルを取る難易度を教えてほしいのです。私の見立てでは、メジャー種目男子(野球、テニス等)で県大会上位に食い込むぐらいの難易度かと思っていますが。

  • 高校体育祭での種目案 メジャーではないもの

    今年度の体育祭を行うに当たって、種目案を考えることになりました。 去年度までの案をまとめて、引き続き行う競技もあるんですが、新しい競技も含めたいという意見があり考えています。 一応、今年度もやることに決まっているのは 短距離走(80m) いなばの白兎:数人が四つんばいで一列に並び、その上を代表者一人が走り、通り過ぎた四つんばいの人は走って先頭の四つんばいの人の隣にまた四つんばいになってゴールを目指すもの。 20人21脚 大縄跳び 台風の目 中距離走(800m) 棒引き 綱引き 玉入れ鬼ごっこ 騎馬戦 学年対抗リレー という感じです。 走る系(特にリレー)が多いので、出来れば大人数で1度に出来るもの、また学校の生徒的にあまり一人で走ったりすることが不得意な子が多いので、、 一人で前に出るものではなく同時に大人数で出来るもの(20人21脚や綱引きのようなもの)がベターです。 しかし、種目案が一向に集まらないので、上に記したもの以外で、もし以前に中学・高校などであった競技があれば教えていただきたいです。 よろしくお願いします。

  • エクセル 関数

    エクセル画面です       A     B     C 1 2     C 3    =Sheet1!B3 4    =Sheet1!B4 5    =Sheet1!B5 6    =Sheet1!B6 現在の画面は Sheet2 であってSheet1のB列のデーターを 読み込んでいます。このB列をC列に変更したい場合は、編集→ 置換で行いますが、セルA2にCを入力することでA3からA6 の式のB列をC列に置換え出来ないでしょうか

  • EXCEL 関数

    EXCELで倉庫への出荷指示書を作っています。 雛形に入力し「別シートへ」というボタンを押せば、転記・保存できるようになっています。 A8に「オーダーNO」、A5に「店名」、C5に「日付」を表示しています。 別シートに保存するタイミングで、「オーダーノート」という名のシートに指示書の一部内容を転記したいのですが、方法はあるでしょうか? オーダーノートのA列に「日付」、c列に「店名」を表示したいのです。なお、B列には予め「オーダーNO」が連番で入っています。

  • エクセルの関数について

    エクセルのシート1で1行目には見出しがあります。 A1には「店名」の文字 A2には、A店 A3にはC店 A4にはB店 A5にはA店とA2~A200には、ランダムにA店~C店の文字がランダムに入っています。 B2には、「個数」の見出し文字。B2には 3 B3には 201  B4には 42 などとB2~B200まで色々な数字が入っています。 ちなみに B列には 0~300までのランダムな数字。 これをシート2に、B列の数の区分けをしたいのです B列の区分け 0~30 31~50  50~300  よって、シート2のA1には「店名」という文字。B2には 0~30  C2には 31~50  D2には50~300という文字が入っています・ シート2のA2には、A店 シート2のA3には B店 シート2の A4には C店 という文字が入っています。 シート2のB2にはシート1のA店のB列にある B2~B200に入ってる文字の 0~200までに入ってる数字 0~30の セルの個数を出したいのですが どうやってシート2に関数を入れたらいいのですか?教えてください

  • エクセルの関数

    エクセルの関数 ですが、 SUMIF を使いたいのです。 シート1の 1行目には 見出しが入っています。 A2~A50に、A店 B店 C店 D店 がランダムに入っています。 B2~B50に、名前が入っています。 C2~C50に、売上の数字が入っています D2~D50に、すべてに 1 が入っています。 E2~E50には、ところどころに 1 が 入っています。 シート2に、SUMIFを使って、E2~E50に入っている 1 の人だけの 各店の合計を出したのですが、どうやったらいいのですか? シート2のA1にはA店 A2にB店 A3にC店 A4にD店 が入っています。 そうすると、シート2のB2には、 =SUMIF(Sheet1!A2:A50,A2,Sheet1!$C$3:$C$50) となるということでいいのですか? ですが、 これは、各店の全体の合計です。 やりたいのは、E2~E50に 1 が 入ってる人のみ 各店の 合計を シート2の B列にだしたいのです。 関数の方法を教えてください

専門家に質問してみよう