• 締切済み

エクセルで別シートに・・・煮詰まりました。

こんにちは。 はじめて質問させていただきます。 お時間が許す方、どうかお手柔らかに お願い致します。 エクセルで下記のような表を作りたいのです;; 初心者なのでチンプンカンプンです・・・・           ●    ▲    ■   ★      ○     4/2   4/1   4/4   4/3      △    4/3        4/1      □    4/4   4/2   4/2          ↑の表に日付を入れると      ↓の表に別シートで表示させたいのですが関数がわかりません・・・          4/1  4/2  4/3  4/4      ●        ○   △   □      ▲   ○   □             ■    △   □         ○      ★            ○    どうかよろしくお願い致します。

みんなの回答

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.6

式はもうでているので、考え方、私なりに解説します。 再編先の列見出しを見ます。 最初は●ですよね 元表の行見出しを見ます。 ●は一列目ですよね で、一列目には○に4/2 △に4/3 □に4/4がありますね。 再編先に戻ります。 ●行の各々で行見出しを参照します、 参照結果と 先程の、○に4/2 △に4/3 □に4/4というデータを照合して、 合う日付を表示します。 これでOKですよね。 ところでこういう場合 MATCH文でターゲットを 直接検索することはお勧めしません 早計でしょう。 何故なら公称では 昇順と降順が要り混じる場合、その境目で検索をやめる ことになっているからです。 確かにたまたま今はできるかもしれないですが マイクロソフトは非公開に仕様変更を 過去何千回と繰り返してます。 ヘルプに明記されている機能ですら、 変更され使えなくなることすらあります。 ましてや 公称に逆らう使い方など 他の方にお勧めすべきか… 私ならSUMPRODUCT文での照合、又はMATCH文なら 0と0以外、FalseとTrueの組み合わせ、 これに置き換えて 0以外(おもに1)、またはTRUEを検索する方向で解を示すと思います。 これなら 見つけるべきものがそこに含まれる限り 昇順、降順の境を迎える前に 検索がヒットしますからね。 やり方はこうですね、 元表の行見出しと列見出しの交点がシート1のB2、再編先がシート2 と、すると …,MATCH(TRUE(),INDEX(($B2=シート1!2:2),0,0),0)-2,… …SUMPRODCT((シート1!$2:$2=$B2)*COLUMN(シート1!$2:$2))… お勧めできないと言うことでもう一つ 蛇足ですが、 あまり完全には全員が全員、 意識されていないことだと思いますが 「長谷」「鷹無」 あなたはどう「振り仮名」を降りますか? 場合場合、人其々で違いますよね? この「違い」が困りものなのです。 なぜかと言うと、 現在の改編の狭間で、SUBIF文やCOUNTIF文などは今、 「振り仮名」の方を拾うように思うからです。 大小比較時も例外ではないと思います。 詰まり 「長谷」「鷹無」など、 他者が一見、「全く同じ」と、する また、同じと扱うべきデータを これらの構文は「別物」と、判断するように 今はなっていると、思うのです。 不安定すぎますよね? 信頼に値しうるとし、委ねられますか? ¨¨を詮索させると「鷹無」「小鳥遊」「薔薇」「葡萄」… 様々なものを呼び出してきたりするのですよ? きつい言い方過ぎるかも知れませんが 貴方の信頼したい気持ちを守るために 使用者全員に打ち込み方の統一を徹底!! しますか? もはやそれはエゴでしょう… 手書きパット入力や、部首検索入力を必要とする場合は 恐らく「想定の降り仮名」は入らないですよね? それどころか、「降り仮名」そのものが入るか これすら疑問! こういう場合どう扱うべきでしょうか? マクロを組んで膨大な漢字文節表を用意して 降り仮名を正しましょうか? あり得ないと思います。 色々考えると 私などは、そら恐ろしくて これらを使う気になれません。 使わねば機能実現不能なら致し方ないですが、 選択の余地があるならば… 皆まで言わずもがなですよね? お役に立てていたならば幸いです。 (※謝罪します、苦言を呈してお気を荒立てたと思います。済みませんでした。)

全文を見る
すると、全ての回答が全文表示されます。
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.5

#4です。 目が点になって良く読んでいなかったのですが、ひょっとして#1のKURUMITO様と同じ事をやっているのでしょうか。やはり、自分にはVBAの方が読みやすいです。慣れないことはするもんではありませんね。失礼いたしました。

全文を見る
すると、全ての回答が全文表示されます。
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.4

見やすい様に、名前をつけてやってみました。添付図の列見出しの範囲に「列見出し」、同様に「行見出し」、「データ」の範囲に名前をつけます。 簡便のため、同一シート内で試しております。C9から右方に日付を、B10から下方に●、▲、...を配置します。 C10に下記の式を入れます。 =INDEX(行見出し,MATCH(D$9,INDEX(データ,0,MATCH($C10,列見出し,0)),0)) これを、右方および下方にずずっとコピーすればできあがりです。 自分でも分からなくなりそうなので、C11セルの例で説明すると、行方向見出しの▲を元表の列見出しで検索して何列目かを求めます。INDEX関数で名前:データの範囲の、該当する列を取り出します。その列の中で、4月1日を検索して、何行目かを求めます。名前:行見出しの中で、対応する行を取得すると、○が得られるという事になります。 (注) 各日付は2013/4/1というようなシリアル値を表示形式で簡略表示しています。 ○、△、...に合致しない箇所には#N/Aのエラーがでます。エラー処理をすると、式が煩雑になるので、条件付き書式でエラー箇所の文字色を白くしています。お気に召さなければご自分でアレンジをお願いします。

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

こんばんは! すでに解決しているようですが・・・ ↓の画像で右側がSheet2とします。 Excel2007以降のバージョンでは Sheet2のB2セルに =IFERROR(INDEX(Sheet1!$A:$A,MATCH(B$1,OFFSET(Sheet1!$A:$A,,MATCH($A2,Sheet1!$B$1:$E$1,0),,1),0)),"") という数式を入れ、列・行方向にオートフィルで 画像のような感じになります。m(_ _)m

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

先ず元のデータがA1:E4にあるものとします B6からC17に下記の式を設定します B6=B$1&B2 C6=A2 これをB7:C8にコピーします。 B9=C$1&C2 C9=A2 これをB10:C11にコピーします。 B12=D$1&D2 C12=A2 これをB13:C14にコピーします。 B15=E$1&E2 C15=A2 これをB16:C17にコピーします。 次にB6:C17を選択し、D6:E17に「編集-形式を指定して貼り付け-値」実行して、式を抜いた値だけコピーします。 次にD6:E17の範囲を選択して、「データ-並べ替え」でD列をキーにして昇順に並べ替えをします。 最後の答えの式は下記の通りです 範囲A27:E31として B27:E27には   4/1 4/2 4/3 4/4 A28:A31には ● ▲ ■ ★ 答えを表示するセルの式は  B28=VLOOKUP($A28&B$27,$D$6:$E$17,2,FALSE) この式をB28:E31に貼り付けます。 これで答えが出ます。 ただし空白のセルは「#N/A]が出ます。これはIF分を使えば空白に出来ますがそれはご自分で考えてください。 かなり複雑ですが頭の体操と思ってやってみてください

miko-0317
質問者

お礼

とってもわかりやすく、ありがとうございました!! まさかこんなに早く解決できるとは・・・! 本当にありがとうございます! 感動しました~w 3日間煮詰まっていたのはなんだったのか・・・・w

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

シート1のB1セルから右横方向には●▲■・・などが、A2セルから下方には○、△,□などが入力されているとします。 シート2にお求めの表を作るとしてB1セルには次の式を入力して右横方向にドラッグコピーします。 =IF(MIN(Sheet1!$B:$XX)+COLUMN(A1)-1>MAX(Sheet1!$B:$XX),"",MIN(Sheet1!$B:$XX)+COLUMN(A1)-1) これでシート1でのもっとも古い日付から新しい日付までが表示されます。 なお、日付を好みの日付で入力しても問題はありません。 A2セルには次の式を入力して下方にドラッグコピーします。 =IF(INDEX(Sheet1!$1:$1,ROW(A2))="","",INDEX(Sheet1!$1:$1,ROW(A2))) つぎにB2セルにはエクセル2007以降のバージョンでしたら次の式を入力して右横方向にドラッグコピーしたのちに下方向にもドラッグコピーします。 =IFERROR(INDEX(Sheet1!$A$2:$A$1000,MATCH(B$1,INDEX(Sheet1!$A:$XX,2,MATCH($A2,Sheet1!$1:$1,0)):INDEX(Sheet1!$A:$XX,1000,MATCH($A2,Sheet1!$1:$1,0)),0)),"") エクセル2007よりも前のバージョンでしたらシート2のB2セルには次の式を入力して右横方向にドラッグコピーしたのちに下方向にもドラッグコピーします。 =IF(ISERROR(INDEX(Sheet1!$A$2:$A$1000,MATCH(B$1,INDEX(Sheet1!$A:$XX,2,MATCH($A2,Sheet1!$1:$1,0)):INDEX(Sheet1!$A:$XX,1000,MATCH($A2,Sheet1!$1:$1,0)),0))),"",INDEX(Sheet1!$A$2:$A$1000,MATCH(B$1,INDEX(Sheet1!$A:$XX,2,MATCH($A2,Sheet1!$1:$1,0)):INDEX(Sheet1!$A:$XX,1000,MATCH($A2,Sheet1!$1:$1,0)),0)))

miko-0317
質問者

お礼

早い回答ありがとうございます!! エクセルは奥が深いですね~

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

関連するQ&A

  • 別シートへの飛ばし方

    毎月、売上内容をエクセルで表に入力しています。 元表にはバラバラに日付を入力していますが、別のシートに月毎にまとめたいんですが、 元表に入力すれば、自動に月毎のシートに内容が反映される関数、マクロを教えて下さい。

  • エクセルで一件の請求書のシートのデータを、別のシートの一覧表にするには?

    エクセルであるシートのデータ(元データ:順次入力日付ごと、一商店ごと)を別のシートに一行ずつのせて表にするには・・下手な説明ですみません・言い換えれば、一件の業者請求書(元のシート)のデータ〔一軒ごとに入力印刷しています。)を別のワークシートの表の一覧にして、表〔日付ごと)にするには、どうしたらよいでしょうか。宜しくお願い致します。

  • エクセルで日付を別のシートに引用したい

    エクセルもマクロも初心者です。 2008年8月29日  という日付を別シートに引用したいのですがうまくいきません。 情報として欲しいのは“2008年8月”の部分です。 調べてみたら文字の引用ができる関数があったので、実際に使ってみました。 LEFT(Sheet1!A1,9) MID(Sheet1!A1,9) どちらをやっても39689という数字が出てきます。 なぜこのようになるのでしょうか? そして、どうすればうまく引用できるのでしょうか?

  • 別のブック、または別のシートからの参照

    Excelで日付によって、別のブック、または別のシートから特定のセルを参照させる方法はありますか? 例えば、1日に閲覧した時は別のブック(シート)のB3のセル、2日に閲覧した時はB4のセル…、次はB5、という風に参照させたいのです。 日付を表示させて、INDIRECT関数等を使って色々と試行錯誤していますが、上手く行きません…。 関数だけで作れるものでしょうか?どなたかご教授願います。

  • EXCELで作ったデーターの集計表を別シートで作るには?

    EXCEL初心者でEXCEL 2007を使っています。 個人事業を始め、EXCELで支出表を作っています。 下記のようにsheet1に打ち込んだデーターを sheet2に項目別に集計を出したい場合、どのように したらできますか? 3/22 交通費 タクシー代 1940 3/23 図書費 書籍代 3410 3/25 交通費 タクシー代 710 3/26 交通費 タクシー代 800    支払手数料 住民票2部 500 交通費や図書費などの合計を自動に計算する関数は 何を使えばいいのでしょか? また、初心者にもわかりやすいEXCELのサイトがあれば 教えて下さい

  • EXCELで、表内の今日の日付の隣のデータを別シートに表示させたい

    EXCELでとあるアプリケーションをつくっているのですが、 行きづまってしまいました。 つくりたいものは、あらかじめ日替わりメッセージをどこかのシートに設定しておき、それを別シートに「その日の分だけ」表示させるというものなのですが、・・・・ たとえば、 シート1に、ある期間の夕食献立を入れ込んだ表をつくる。 シート2には、「今日の」献立が毎日表示される。 おそらく、シート1に表をつくり、シート2のセルに「シート1中、今日の日付の隣のセルの内容」を表示させれば良いのかと思い、MATCH関数を使うなどしてがんばってみたのですが、・・・できません。 VBAを使っても良いのですが、おそらくシート上のみで処理できるのではという気がしますし、使用する状況を考えると、その方が好都合です。 良い方法があればお教えください。

  • EXCEL 異なるシート間の参照

    EXCELに関しての質問です。 超初心者で基本がわからないままの質問ですみません。 同じブック内の複数のシート(様式は異なります)間の作業です。 片方のシートの日毎のデータを別のシートの日毎のセル に参照し、反映させたい。 INDIRECT関数を用いて、=INDIECT(A3&"!V3")のようにして A3に表示される文字列のシートのセル番地V3を参照し、 他のシートにそのデータを表示したいのですが、 うまくいきません。 A3セルには一ヶ月の日付が入っているので、 日付の入った他のシートを日付ごとに参照していくのですが、 そのシートの中のいつも同じセルV3しか 参照してくれないのです。 このV列のセルも自動的に日付に沿ったセル参照に変更するのは どうしたよろしいでしょうか。 よろしくお願いします。

  • Excelのハイパーリンクで,別Excelのシート

    Excelのハイパーリンクについて, リンク先をこのドキュメント内だとsheetまで指定できますが, 別のExcelをリンク先にする場合,ファイルweb別ページだと sheetまで指定できません。 Excel一覧表Aと,それそれsheetでまとめたExcel Bと2つ作り, 一覧表のリンクをクリックすると,詳細はExcel Bのsheet1・sheet2・・・が 表示されるようにしたいです。 可能であれば,教えてください。よろしくお願いします。

  • エクセルVBAで、シート1の値をシート2へ移すには?

    エクセルVBAの質問です。初心者です。 ■シート1のA1に「123」と打ったら、シート2のA1に「123」と表示される。そして、A2に「456」と打ったら、シート2のA2に「456」と表示される。続いてシート1のA3の値をシート2のA3に・・・とどんどん繰り返してたくさんの値を別のシートに移せるようにしたいです。 関数で言えば、VLOOKUP と似ている機能を作りたいと思ってます。 よろしくお願いします。

  • 勤務表でチェックした日付を別のシートに表示

    エクセルをつかって早出・遅出・日勤を表示した勤務表をつくりました。これを用いて遅出の日にマークをつけた日付を別のシートのセルに表示するいい方法はありますか? パソコン初心者なもので困っています。よろしくお願いします。

専門家に質問してみよう