• 締切済み

C列の要素によって、3枚のシートに振り分ける

tom04の回答

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

こんばんは! 一例です。 ↓の画像で説明すると、 仮に「品目」が3つの場合 Sheet2をアクティブ → Shiftキーを押しながらSheet4のSheet見出しをクリック! これでSheet2~Sheet4が「作業グループ化」されましたので A4セルに =IFERROR(INDEX(Sheet1!A$1:A$1000,SMALL(IF(Sheet1!$C$1:$C$1000=$A$1,ROW($A$1:$A$1000)),ROW(A1))),"") 配列数式になりますので、Ctrl+Shift+Enterで確定! この画面からコピー&ペーストする場合は 上記数式をドラッグ&コピー → A4セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま) Ctrl+Shiftキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 A4セルを列・行方向にフィルハンドルでコピー! → Sheet見出し上で右クリック → 作業グループ解除 最後に各SheetのA1セルに表示したい「品名」を入力します。 これで画像のような感じになります。m(_ _)m

pichichitori
質問者

お礼

ありがとうございます。 すごいです!画像まで作って頂き恐縮です。 が、書いてある通りにやってみましたがうまく動きません。 うまく動かなかった理由が、実際のデータと質問用に簡単に示したものの違いから来ていると困るので実際の状態を説明しますと、 ・シート1のデータ一覧は4行目から(A4から)始まります。 ・シート1には名前がつけてあり「顧客一覧」となっています。シート2の名前も「いちご」になっています。 ・項目はA~Lの12項目あり、キーとして使うのはC列でなくF列です。 ・A列には住所ではなく「1-1」「1-8」「1-14」「2-3」「2-10」「2-15」といったような「番号」が入っています。  (ただし、A列も書式設定は「文字列」になっています。) なので書いて頂いた式の「A$1」を「A$4」に、「C」を「F」に直し =IFERROR(INDEX(Sheet1!A$4:A$1000,SMALL(IF(Sheet1!$F$1:$F$1000=$A$1,ROW($A$4:$A$1000)),ROW(A4))),"") といったように書き直し、シート2のA3セル(実際にはA4セルからではなくA3セルから使うので)に入れて、ctrl + shift + enterを押してみました。 するとこの式がそのまま表示されてしまったので、「セルの書式設定」を見ると「文字列」になっていたので「数値」を選びました。 その瞬間、「値の更新」というポップアップ画面が出てきてしまいました。 パソコン全体の中からデータの参照元にするファイルを選べという指示のようだったので、このファイル自体を選びました。 すると、「どのシートを元にするか選べ」というようなポップアップ画面が出たので、また「顧客一覧」シートを選びました。 すると、「循環関数になっているからだめ」というようなエラーが出てしまいました。 何度か条件を変えてやってみると(「A$1」をあえて「A$4」に直さないでそのまま使う、「いちご」シートを使わず新しい「Sheet6」を使うetc)、 「すべてのセルが空白になってしまう」「すべてのセルが『0』という値になってしまう」、「式がそのまま表示されてしまい計算しない(セルの書式設定を数値に直してもだめ)」などのエラーが出ました。 どうにもうまく行きません。いただいた式の書き直し方が間違っているのでしょうか? ----------------------------- #1~#8の回答者様もありがとうございます。 今、できそうなものから順に試していき、お礼・補足させて頂こうと思います。

pichichitori
質問者

補足

すみません、お礼を投稿したあとに#7さまの方法を試してみて、A1に「すいか」と入力する意味が分かりました。 シート2の左上に入れた言葉を参照して、同じものを表示させているんですね。 そうとわかったのでもう一度#9さまの方法に帰り、CをFに直すだけで入力してみたところ、 先ほどと同じようにパソコン全体の中からデータの参照元にするファイルを選べという指示と、 どのシートを更新元にするか選べというような指示が出たので、このファイルのシート1(顧客一覧)を選んだのですが、その瞬間に式が =IFERROR(INDEX([Sheet1]顧客一覧!A$1:A$1000,SMALL(IF([Sheet1]顧客一覧!$F$1:$F$1000=$A$1,ROW($A$1:$A$1000)),ROW(A1))),"") になってしまいました。 そして期待した値は得られませんでした。 そこで1つ目の「[Sheet1]顧客一覧!」を削って見たところ、すべてのセルが空白になってしまいだめでした。 2つ目の「[Sheet1]顧客一覧!」を削ってみても同じです。「循環になっているのでだめ」というような警告が出たりもします。 シートを選ぶときに「いちご」のシートを選んでも同じです。 式の直し方が間違っているのでしょうか。

関連するQ&A

  • excelでシートから別シートに抽出する方法

    データシートに A   B    C 佐藤 りんご  25個 木村 オレンジ 3個 伊藤 メロン  12個 伊藤 スイカ  2個 佐藤 イチゴ  40個 佐藤 マンゴー 8個 というデータがあったとします。 それを別のシートに A   B    C 佐藤 りんご  25個    イチゴ  40個    マンゴー 8個 また別のシートに A   B    C 伊藤 メロン  12個    スイカ  2個 といったようにAに佐藤とか伊藤とか入力するだけでB、Cが自動で抽出できるようにできますか? 出来れば関数の入力でやりたいのですがわかる人がいましたらご教授ください。

  • ★エクセル関数に詳しい方、よろしくお願いします

    ★エクセル関数に詳しい方、よろしくお願いします はじめまして質問を利用させていただきます。 エクセル関数に詳しい方、どうか教えてください。 いつもこの質問コーナーをヒントに↓の関数を作成して、シート1の★c列に 値を抽出することができました。 <シート1>の★c列に関数を入れて、a列、b列の一致したデータを<シート2>から抽出 =INDEX(シート1!c$2:c$10,MATCH(2,MMULT((シート2$a2:F$a10=a2:b2)*1,{1;1}),))    <シート1>           <シート2 データ> a列  b列   ★c列      a列  b列    c列 101  キウイ  北海道    101  キウイ  北海道 201  キウイ  沖縄県    101  ばなな  北海道 101  ばなな  北海道    101  オレンジ 北海道 201  ばなな  沖縄県    101  いちご   北海道 101  オレンジ 北海道    101  メロン   北海道 201  オレンジ 沖縄県    201  キウイ   沖縄県 101  いちご  北海道     201  ばなな  沖縄県 201  いちご   沖縄県    201  オレンジ 沖縄県 101  メロン   北海道     201  いちご  沖縄県 201  メロン   沖縄県     201  メロン   沖縄県 **********************************************  この下からが質問内容になりますm(_ _)m ********************************************** しかし、表が少し複雑になってしまい、 上で作成した関数が使えなくなってしましました。 ●<シート2>のb列の文字が複雑になってしまった場合、 <シート1>の★c列に、うまくデータを抽出することはできますでしょうか? <シート1>          <シート2 データ> a列  b列   ★c列    a列   b列     c列 101  キウイ  #N/A    101  甘いキウイ 北海道 201  キウイ  #N/A    101  甘いばなな 北海道 101  ばなな  #N/A    101  オレンジ   北海道 201  ばなな  #N/A    101  いちご小   北海道 101  オレンジ #N/A    101  メロン小   北海道 201  オレンジ #N/A    201  黄色キウイ 沖縄県 101  いちご   #N/A    201  ばなな小  沖縄県 201  いちご   #N/A    201  オレンジ大 沖縄県 101  メロン   #N/A    201  いちご大  沖縄県 201  メロン   #N/A    201  メロン大   沖縄県 もし、ご存知の方がいらっしゃいましたら、どうかご教示願います。 どうかよろしくお願いいたします。

  • ★関数について教えてください(追加のお願いです)

    先ほどもこちらで質問をさせていただいたものです。m(_ _ )m  <質問★エクセル関数に詳しい方、よろしくお願いします>にて・・・  <回答していただいた関数>    =INDEX(Sheet2!$C$1:C$10,MATCH(2,MMULT(ISNUMBER(FIND(A1:B1,Sheet2!$A$1:$B$10))*1,      {1;1}),0)) 上記の関数を教えていただき、無事に解決をいたしました。 こちらの質問掲示板で初めて投稿させていただきましたが、 とても早くご回答を頂き本当にありがとうございます。 ********************************************************************************* 追加のお願いなのですが・・・ 今度は、<シート1>のb列の名前も複雑になった場合、★c列を抽出することは可能でしょうか? ********************************************************************************* <シート1>            <シート2 データ> a列  b列      ★c列    a列   b列     c列 101  キウイA   #N/A    101  甘いキウイ 北海道 201  キウイB   #N/A    101  甘いばなな 北海道 101  ばななA   #N/A    101  オレンジ   北海道 201  ばななB   #N/A    101  いちご小   北海道 101  オレンジ   #N/A    101  メロン小   北海道 201  オレンジ   #N/A    201  黄色キウイ 沖縄県 101  いちご     #N/A    201  ばなな小  沖縄県 201  いちご     #N/A    201  オレンジ大 沖縄県 101  メロンA    #N/A    201  いちご大  沖縄県 201  メロンB    #N/A    201  メロン大   沖縄県 また、関数に詳しい方がおられましたら、どうかご教示お願いいたします。 m(_ _)m

  • 二つのデータを比較してデータを自動でコピペしたい

    Sheet1「元データ」                 A   B    C   D     1 0001 みかん  A店  3/1  2 0200 りんご B店  3 0311 いちご B店  3/10 4    いちじく C店 5 0360 メロン  D店 6 かき   P店 7 0312 キウイ  D店 Sheet2「最新データ」   A   B    C   D 1 0001 みかん  A店  3/1 2 0190 3 0200 りんご B店  4 0311 いちご B店  3/10 5 0422 洋ナシ C店 6 0250 7 0500 すいか  P店  8 0312 キウイ というデータがあり、Sheet1のデータで、Sheet2には無いものがあったら、Sheet2に追加をしたいのですが、どのようにすればよいのか、さっぱりで困っています。何かヒントなどを戴きたいと思います。 よろしくお願いします。 こんな感じにしたいです。 Sheet2「最新データ」   A   B    C   D 1 0001 みかん  A店  3/1 2 0190 3 0200 りんご B店  4 0311 いちご B店  3/10 5 0422 洋ナシ C店 6 0250 7 0500 すいか  P店  8 0312 キウイ 9     いちじく C店 10 0360 メロン  D店 11 かき   P店  

  • エクセルのシート名参照関数

    エクセル関数でいろいろ試したのですがうまくいかず困っています。 VBAは出来ないので(苦手なので)できましたら関数で教えてください。 12年1月~12年12月で別々のシートがあり、それぞれ別の『行』『列』に参照をしたい数字があります。 集計シート名『Sheet1』の『A1』に『検査値』、『B1』~『B12』に『12年1月』~『12年12月』、『C1』~『C12』に『該当する値』を表示したいと思います。 具体例 <シート名 : Sheet1> ---A-----B----C 1 リンゴ 12年1月 値 2 -----12年2月 値 3 -----12年3月 値 4 -----12年4月 値 5 -----12年5月 値 <シート名 : 12年1月> ---A----B 1 リンゴ 100 2 バナナ 50 3 メロン 10 4 スイカ 5 5 ミカン 1 <シート名 : 12年2月> ---A----D 1 パイン 10 2 バナナ 20 3 メロン 30 4 リンゴ 40 5 ミカン 50 <シート名 : 12年2月> ---A----F 1 パイン 10 2 バナナ 20 3 スイカ 30 4 リンゴ 40 5 ミカン 50 <シート名 : 12年3月> ---A----C 1 パイン 1 2 レモン 10 3 リンゴ 100 4 メロン 1000 5 イチゴ 10000 上記<シート名 : Sheet1>の『C列』に式を入れ、それぞれのシートから『A1』に該当する値を表示させたいと思います。 文書が下手ですのでわかりにくい内容で申し訳ありません。

  • エクセル関数で、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  け 何とぞよろしくお願いします。

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

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

  • Excelで同一文字列を検出して隣りのセルに返すなどしたい

    Excelのシートの1列に文字列がずらっと並んでいるとします。本来は「いちご、りんご、ばなな、みかん、すいか、めろん」と、ダブリがないはずの項目ばかりが入力されているはずでしたが、しかし実際は「いちご、りんご、ばなな、りんご、みかん、いちご、すいか、めろん」という風に、いくつかの項目にダブリがあるとします。そこで、そのダブリを発見し、何がダブっているのか手早く知る方法があれば教えてください。関数、もしくはマクロをご存知の方、お願いいたします。

  • シートA及びBの指定列に数値があればシートCに"〇

    シートAのA列に文字がありC列、D列に数値がある。シートCのA列の文字と同じ文字がシートAのA列にありC列もしくはD列数値があればシートCのC列に〇をつけたい。シートAのA列にシートCのA列と同じ文字がなければシートBのA列の同じ文字を探しC列もしくはD列数値があればシートCのC列に〇をつけたいのですがどなたか解る方宜しくお願いします。環境はoffice2013です。

  • シートの行並びの値を別のシートの列にコピーする式は

    あるシートに並んでいる行数値を別シートの列に並べる関数を教えていただけませんか (例)シート1      A   B   C   D 12   48 38  15  39 上記A12 に48 B12に38 C12に15と並んでいる数値を別のシートに列に並びかえる式は? シート2   A 1 48 2 38 3 15 4 39 と行った様にする関数を教えてください。単に数値だけなら                  行と列の並び替えでできますがそうではなくシート1に数値を入力                  することにより関数によって自動的にシート2に数値を表したい。