• ベストアンサー

エクセル 表の表示について

どなたかお知恵をお貸しいただけたら幸いです。 現在エクセルの表で、日付と買ったものが並んでいるのですが、その表示を一括で変更できたらと思っています。 A列 4/1  りんご B   4/1  みかん C   4/1  いちご D   4/2  みかん E   4/2  メロン F   4/3  いちご 上記の表があり、これを下記のような表に簡単に直すやり方が見つけられずに悩んでおります。 A列  4/1     4/2      4/3 B  りんご    みかん   いちご  C  みかん   メロン D  いちご どなたかよろしくお願いいたします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! ご質問の配置(列番号)はこちらで勝手に行としてやってみました。 一例です。 ↓の画像のようにSheet1のデータをSheet2に表示するようにしています。 日付は両Sheetともシリアル値が入っていて、Sheet2の日付はあらかじめ入力してあるものとします。 Sheet2のA2セルに =IF(COUNTIF(Sheet1!$A:$A,A$1)<ROW(A1),"",INDEX(Sheet1!$B$1:$B$1000,SMALL(IF(Sheet1!$A$1:$A$1000=A$1,ROW($A$1:$A$1000)),ROW(A1)))) これは配列数式になってしまいますので、この画面からA2セルにコピー&ペーストする場合は A2セルに貼り付け後、 数式バー内で一度クリック → 編集可能になりますので Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 これを列方向と行方向にオートフィルでコピーすると画像のような感じになります。 尚、ご質問通りに1行目・列方向に日付が並んでいるのであれば当然数式も変わってきます。m(__)m

tasuke23
質問者

お礼

迅速なご回答ありがとうございました。 配列を使用する方法も含め、まったく考え付きませんでした。 じっくり理解したいと思います。 本当にありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

質問は初めてするのかな・ A列 4/1  りんご B   4/1  みかん C   4/1  いちご D   4/2  みかん E   4/2  メロン F   4/3  いちご とはシートの見た目に従って A列・・・B列・・・C列・・・・ 4/1   4/1  4/1 りんご  みかん いちご と書いて質問するべきです。 またエクセルのシートの使い方として、データは、縦方向に流すやり方の入力が標準です。 今は(2007以後)列数も大幅に増えたとはいえ、行数より、列数のほうが少なく、制約が多い。 エクセルの特有のリストとかテーブルの考えも縦方向にデータを入力する前提です。 ーー さて本件表の組み換えでしょう。 例データ 4月1日 4月1日 4月1日 りんご みかん いちご 30 20 10 a b d コピー G1とかを指定して 形式を選択して貼り付け 行と列を入れ替える OK で 4月1日 りんご 30 a 4月1日 みかん 20 b 4月1日 いちご 10 d のようになる。(参考) ーーーーー 例データ 4月1日 りんご 4月1日 みかん 4月1日 いちご 4月2日 みかん 4月2日 メロン 4月3日 いちご とあるものを同じ日の分は同行に順次同行別列に並べたい (こういう風に質問文に主旨を文章でも書くこと) 関数は並べ替えは苦手です(抜き出しと同じことなので)(式が拭くざるになる) VBAなら素直に蚊mmが得るとおり出来て、複雑でもない) 条件付抜き出しと同じく、色んなやり方があるが、作業列を使うimogasi方式でやってみる。 例データ C列は  作業列です(その左側5桁は日付シリアル値というもの。それに同一日付内の連番数字を加えている) A列・・・・・・B列・・・・・・C列  4月1日 りんご 406341 4月1日 みかん 406342 4月1日 いちご 406343 4月2日 メロン 406351 4月2日 みかん 406352 4月2日 メロン 406353 4月3日 いちご 406361 4月3日 りんご 406362 ーー D1:D3 (何処でも良いが式が少し変わる) 4月1日 4月2日 4月3日 と入れて E1に =IF(COUNTIF($A$1:$A$100,$D1)<COLUMN()-4,"",INDEX($B$1:$B$100,MATCH($D1&(COLUMN()-4),$C$1:$C$100,0),1)) と入れて右方向に式を複写 E1:H1の式を下方向に式複写 結果 4月1日 りんご みかん いちご 4月2日 メロン みかん メロン 4月3日 いちご りんご #N/Aを出さないために、IF(COUNTIF($A$1:$A$100,$D1)<COLUMN()-4,"",の部分をかぶせている。 ーー これでも式が複雑と感じるかもしれないが、INDEXとMATCH関数の2つの組み合わせが基本である。 他の回答ではもっと複雑な式が出ているが、こういうものは初心者には理屈が判るのも難しかろう。 エクセル関数でやろうとすることに無理があるのだ。

tasuke23
質問者

お礼

回答ありがとうございます。   A列・・・B列・・・C列・・・・ 1  4/1   りんご 2  4/1   みかん 3  4/1   イチゴ の質問間違えでしたが、参考にさせて頂きます。 ありがとうございます。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

列と行が違っているようにも見られますので元のデータは次のようになっているとします。 シート1のA1セルには日付などの項目名が有り、A2セルから下方には4/1,4/1,4/1,4/2・・・のように日付が入力されているとします。B2セルから下方にはりんご、みかん、いちご…と入力されているとします。 そこで作業列としてC2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,ROUNDDOWN(MAX(C$1:C1),-8)+100000000,ROUNDDOWN(MAX(C$1:C1),-8))+A2*1000+COUNTIF(A$2:A2,A2)) この式は日付も含んだ情報を含むために多少複雑な式になっています。 そこでお望みの表をシート2に作るとしたら例えばシート2のA2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(ROW(A1)=1,IF(COLUMN(A1)>MAX(Sheet1!$C:$C)/100000000,"",INDEX(Sheet1!$A:$A,MATCH((COLUMN(A1)+1)*100000000,Sheet1!$C:$C,1))),IF(OR(A$2="",COUNTIF(Sheet1!$C:$C,COLUMN(A1)*100000000+A$2*1000+ROW(A1)-1)=0),"",INDEX(Sheet1!$B:$B,MATCH(COLUMN(A1)*100000000+A$2*1000+ROW(A1)-1,Sheet1!$C:$C,0)))) なお2行目には日付のシリアル値が表示されますので書式の表示形式で日付にします。 これで日付を含めた書き換えが完成します。

tasuke23
質問者

お礼

回答ありがとうございます。 かなり難しい式になるのですね。 かなり参考になりました。

関連するQ&A

  • Excel 関数 照合した結果がどこにあるのか表示したいのですが

    照合したいデータがあります。 A列とB列のセルを照合の結果、B列のセルがA列のどこにあるか、C列に行番号を表示したいのですが。 どのような関数がいいのか教えてください。よろしくお願いします。   A列   B列   C列 1 リンゴ みかん  2 2 みかん いちご  4 3 バナナ レモン  6 4 いちご メロン  5 5 メロン ぶどう  × 6 レモン

  • エクセル2003での質問です

    エクセルの関数の質問です  例えばですが、シート1をデータシートして、A列に日付とし、B列にりんごの種類、C列にみかんの種類  D列にいちごの種類とした時に、シート2を検索シートとした場合、検索シートのA1に特定の日付を  入力した時、B1に特定の条件で表示出来る方法が知りたいです。  通常、はD1列(いちごの列は、データが全て入っています)の「いちご」を表示させ、  B列にりんごを入力した場合は「りんご、いちご」と表示させ  C列にみかんが入力された時は、「みかん」と表示させたいのです。   (B、C列は日付により「みかん」だけ、「りんご」だけとかあります) よろしくお願いします。

  • なぜ BDEのどれかが嘘となるのでしょうか

    テーブルの上にメロン、いちご、みかんが置いてあり、AからEの5人が次のように発言している。このうち1人がうそを言っているが、それは誰か。 A 「メロンといちごは合わせて9個ある」 B 「いちごは4個しかない」 C 「メロンといちごとみかんは全部で12個」 D 「みかんは4個しかない」 E 「いちごとみかんを合わせると7個」 解説 全員が本当のことを言っているとして、発言者と各個数を表にすると、次のようになる。表よりB,D,Eの誰かがうそを言っていることがわかる。 1 Bがうそをついているとすると、いちごは3個となるが、メロンが6個となるため、合計が13個となり不適当。 2 Dがうそをついているとすると、みかんは3個となり、合計も12個となる。 3 Eがうそをついているとすると、いちごとみかんは合わせて8個となる。このときメロンは5個であるから、合計13個となり不適当。 よって、正答は4となる。 解説には表がなく、表の書き方もわかりません

  • エクセル関数で、2列の情報を1列に順番に並べたい

    以下の元データのようにA~D列にある情報を、 下方のE列、F列にあるように情報を合わせて表示したい場合、 E列、F列にはどのような関数を入れたらよいでしょうか。 COUNTIFやVLOOKUP関数を試してみましたが、 うまく順番に並べることができず途方に暮れています。。。 どなたかお知恵がある方、マクロではなく関数で 教えていただけたらありがたいです。 ※A列はB列の情報番号、C列はD列の情報番号です。 ↓元データ↓ A  B    C   D 1 みかん  1 あ 1 みかん  2 い 1 みかん  3 う 2 りんご   4 え 2 りんご   5 お 3 すいか  6 か 3 すいか  7 き 3 すいか  8 く 3 すいか  9 け ↓このようにしたいです。↓ A  B    C  D   E  F 1 みかん  1  あ    1  みかん 1 みかん  2  い    1  あ 1 みかん  3  う    2  い 2 りんご   4  え    3  う 2 りんご   5  お    2  りんご 3 すいか  6  か    4  え 3 すいか  7  き    5  お 3 すいか  8  く     3  すいか 3 すいか  9  け    6  か                 7  き                 8  く                  9  け 何とぞよろしくお願いします。

  • どの関数を使えばいいかわかりません。

    漠然としたタイトルですみません。 たとえば・・・      A     B    C     D       1班    2班   3班   4班    オレンジ  キウイ  チェリー さつまいも    にんじん  りんご  みかん  いちご    もも    なし   すいか  メロン とあった場合、もし、例えば『りんご』をF列に入れ、この表から探し、その列の列タイトルを隣のF列に表示したい。    ↓     E   F    りんご  2班    すいか  3班           これはどのような関数を使えばよろしいでしょうか? よろしくお願いします。

  • 表から条件で抽出して別の表を作る

    いつもお世話になっています。またわからなくなってしまいまして、わかる方がいましたらよろしくお願いいたします。 下記のような表で、例えばB列が『A商店』のデータを抽出して、別の表としてE列以降に新しい表を作るようなことは可能でしょうか? =====  A    B   C D E    F   G りんご A商店 2個  りんご A商店 2個 バナナ A商店 3個  バナナ A商店 3個 りんご B商店 5個  バナナ A商店 5個 みかん C商店 3個  みかん A商店 1個 バナナ A商店 5個 みかん A商店 1個 バナナ C商店 3個 ===== よろしくお願いいたします。

  • エクセル 同名の場合はB列にC列の数値を入れたい!

     A列  B列   C列     D列 りんご        50    みかん みかん        30    ぶどう いちご        20    ばなな ぶどう        40    りんご ばなな        60     いちご ↑上記のような表があります。 もしA列とD列が同名であればC列の金額をB列に表示したいのですがよい関数はありますでしょうか?? おわかりの方教えてくださーい!

  • Excel 指定値だけ行コピー+値の移動

    Excel 2010でSheet1に次のような表があります。  A列  B列 C列 D列 E列  りんご 111  222 333 444  みかん 555  666  いちご 777  888 999   ・   ・   ・ これをマクロを使って、次のような形にしたいと思います。 1.C列以降の「数値が入った列数分だけ」行コピーをする。(最大9列まで)  (この例の場合りんごの行は3回、みかんの行は1回、いちごの行は2回) 2.次にC列以降の数値はコピーした行のB列に移動する。 マクロ実行後は次のようになります。  A列  B列  りんご 111  りんご 222  りんご 333  りんご 444  みかん 555  みかん 666  いちご 777  いちご 888  いちご 999   ・   ・   ・ 膨大な数のデータですので、マクロを使って処理したいと思っています。 どうぞよろしくお願いいたします。

  • COUNT IF???

    エクセル初心者です。 A列とB列にある項目で違うモノをはじき出したいのですが。 A列     B列    りんご   りんご    みかん   りんご りんご   みかん メロン    メロン みかん みかん いちご メロン A列にもB列にもないのが『いちご』という具合に答えを出したいのですが、何か良い方法を教えてください。 よろしくお願い致します。

  • エクセルでこんなことできますか?

    エクセルで作成した表の集計について悩んでます。 無理かもしれないと思いつつ質問してます。 皆様の知恵をお貸しください。 よろしくお願いします。 シート1:果物 A   B  C   D   F ・・・      H12     H13     H14 1 1位 なし  1.38 りんご1.47  くり 5.46 2 2位 りんご 1.19 なし 1.33  メロン3.25 3 3位 メロン 1.12 くり 1.22  みかん2.55 4 4位 みかん 1.10 メロン1.01  なし 1.66 ・ ・ ・ ・ シート2:魚 A   B  C   D   F ・・・      H12     H13     H14 1 1位 さば  1.38 さんま1.47  かつお 5.46 2 2位 さんま 1.19 あじ 1.33  さんま3.25 シート:集計 果物   A   B   C   D   F ・・・        H12     H13     H14 1メロン  1.12 3位  1.01 4位   3.25 2位 2なし   1.38 1位  1.33 2位   1.66 4位 魚 1 さんま 1.19 2位  1.47 1位   3.25 3位 2    シート:集計のような表を作成すること可能ですか?    関数で作成すること可能ですか?とりあえず    VLOOKUPで数値の部分はとってますが。。そのつど条件を    変えないといけないので大変面倒です。他の方法とかありますか?    教えてください。よろしくお願いします。

専門家に質問してみよう