• ベストアンサー

Excelで表の作成方法を教えてください~

Excelで、1列目に条件(1)、2列目に条件(2)、3列目に(1)(2)の条件を満たした値が設定されている 表Aがあります。 表Aの条件(1)はそのままで、条件(2)を1行目に横に設定し、縦の条件(1)を元に横の条件(2)の 交差する位置に値が入る表Bを作成したいのですが、どのような方法があるでしょうか? 表Aの値を更新すると表Bに反映されるようにしたいです。 宜しくお願い致します。

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

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

こんにちは! 作業用の列を使った一例です。 D列を作業用の列とします。 (D列が使用済みであれば離れた列にしてください) お示しの配置でD3セルを =A3&B3 としてオートフィルでずぃ~~~!っと下へコピーしておきます。 I3セルに =IF(OR($G3="",I$2="",COUNTIF($D:$D,$G3&I$2)=0),"",INDEX($C:$C,MATCH($G3&I$2,$D:$D,0))) という数式を入れ、列方向と行方向にオートフィルでコピーすると 希望に近い形にならないでしょうか?m(__)m

tomomiffy
質問者

お礼

ありがとうございます! この数式は超初心者の私でも理解できました! 考え方ひとつでこんなにも単純にできるなんて、本当にすごいです。。 ありがとうございました!

その他の回答 (5)

  • shorun
  • ベストアンサー率42% (133/310)
回答No.6

No2 No3回答者です。 はじめにNo2の訂正です。 誤 2.表Aの、aa ~ bb は誤りなので aa ~ cc に訂正します。 結論 例示した表Aの条件2をaa~ccの3個からaa~zzの26個にすれば式はこのままでよいです。 >条件(2)は69パターンあります。 ということは、私が例示した表Bは斜めに、1・2・3と並んでいますが、 1・2・3・・・・26 のように表の一番右下に 26 を表示させればよいのですか? そうしたいなら 1.表Aの条件2でたとえばaa bb cc ・・・xx yy zzの26パターンを入力する。 2.表Aの aa~zz 迄を表Bへ(行列を入れ替えて)コピーする。 3.前(No2)回答と同じ式 =IF(I$2=$B3,$C3,"")を赤色セルに入力する。 4.この式を(前回答より広い範囲になったピンク色)の全セルへコピーする。 以上でよいと思います。 >この数式では設定できないのですが、どのように処理すればよろしいでしょうか? 「この数式」とは上記の =IF(I$2=$B3,$C3,"") のことでしょうか? 「設定できない」の意味が理解しかねます、式に「26」が無いということかなぁ 表Bの赤色セルだけが対象なら式は =IF(I2=B3,C3,"")でセル番地は相対参照にします。 この式をこのまま(ピンク色)の全セルへコピーしても、結果は×です、 結果を○にするためセル番号の一部に$を付けてセル番号は複合参照にしてあるので、 この式で設定可能です。 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ここまでの説明内容でご理解いただけた場合は、以下は読まないようお願いします。 蛇足 1.実務のため結果だけをお求めなら他の回答者様のような高度な関数で処理すればスマートな結果になるとおもいます。 2.今回の質問がもし、エクセル勉強中で練習問題の答えをお求めなら 問題のテーマに応じた関数などで表Bを作成するのがレベルアップにつながると思います。 なので、練習中のテーマを記載して解らない項目について質問すれば、より的確な回答が得られると思います。

tomomiffy
質問者

お礼

ご回答ありがとうございます。 また、今回の質問の背後まで汲み取って頂き ありがとうございます。 こちらはExcel初心者で勉強中です。 今回の問題は、自分自身で考えたものです。 通常の表の縦横を入れ替えた場合、値はどのように抽出できるのか、 を考えた際に、条件ははっきりしているのにどんな式を利用できるのかが まったくわかりませんでした。 みなさん、本当にとても丁寧に教えてくださって本当に有難いです。 教えて頂いた内容は未だ半分も理解できていませんが、ひとつひとつ 使えるようになるようにがんばります。 ありがとうございました。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

>頂いた数式内のセルの値が2000ではどのようになりますでしょうか?  「数式内セルの値」とは何の事を指しているのでしょうか?  数式内で指定されているR2C1セルに入力されている値の事でしょうか、 それとも、表Aにおいてデータが存在している行数の事でしょうか、 それとも、表Aにおいてデータが存在している行の中で、最も下にある行の行番号の事でしょうか、 それれとも、表Aにおいて「条件(1)」と入力されているセルの行番号が、2ではなく、2000であるという意味でしょうか?  因みに、ANo.1の数式は、3列において数値が入力されているセルの中で、最も下にあるセルの行番号を自動的に検出しますから、最も下の行の行番号が、20列でも、2000列でも関係なく、同じ数式で処理する事が出来ます。(但し、行数が増える程、計算に要する時間が長くなります)  このため、普通の関数とは違って、R2C1、R2C2、R2C3、の3つのセルに対して、削除や切取りする事さえしなければ、データが入力されている途中の行を、削除切取り、貼り付け、挿入等の編集を行っても構いません。

tomomiffy
質問者

お礼

ご返答ありがとうございます。 また、私の至らない質問にも丁寧に 内容・意図を汲み取ろうとしてくださる姿勢に 心から感謝致します。 実は最初に頂きました数式のなかの、 >R2C1、R2C2、R2C3、の3つのセル がどこのセルを指すかすら理解できておりませんでした。 本当に素人で申し訳ないです。 まだまだ勉強不足です。 これから沢山勉強して、回答者様の教えてくださった式を 理解して使えるようになるようにがんばります。 お手間を取らせてしまい、本当に申し訳なかったです。 貴重なお時間をありがとうございました。

  • shorun
  • ベストアンサー率42% (133/310)
回答No.3

No2です 添付図着色わすれました。

tomomiffy
質問者

補足

ご回答ありがとうございます。 条件(2)は69パターンあります。 この数式では設定できないのですが、どのように処理すればよろしいでしょうか? すみません、宜しくお願い致します。

  • shorun
  • ベストアンサー率42% (133/310)
回答No.2

条件を1,2ともに3個づつで例示します、実際の数に合わせて読み取ってください。 1.表Aの、ああ ~ うう 迄を表Bへ(そのまま)コピーする。 2.表Aの、 aa ~ bb  迄を表Bへ(行列を入れ替えて)コピーする。「註1」 3.表BのI列3行(赤色)に次の式を入力する  =I条件1と2を3個づつで例示します、実際の個数にあわせて試してください。 F(I$2=$B3,$C3,"") 4.この式を(ピンク色)の全セルへコピーする。以上です。 「註1」(行列を入れ替えて)コピーする方法が分からなければ補足してください。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 まず、R3C7以下に「あああ」~「くくく」等の条件(1)の項目を順番に入力し、R2C9から右に向かって、「aa」~「hh」等の条件(2)の項目を順番に入力しておいて下さい。  次に、R3C9に入力する数式ですが、御使いのExcelがExcel2007以降のバージョンである場合には、 =IF(COUNTIFS(C1,RC7,C2,R2C)=0,"",SUMIFS(C3,C1,RC7,C2,R2C)) Excel2007よりも前のバージョンである場合には、 =IF(SUMPRODUCT((OFFSET(R2C1,1,):INDEX(C1,MATCH(99^9,C3))=RC7)*(OFFSET(R2C2,1,):INDEX(C2,MATCH(99^9,C3))=R2C))=0,"",SUMPRODUCT((OFFSET(R2C1,1,):INDEX(C1,MATCH(99^9,C3))=RC7)*(OFFSET(R2C2,1,):INDEX(C2,MATCH(99^9,C3))=R2C)*(OFFSET(R2C3,1,):INDEX(C3,MATCH(99^9,C3))))) として下さい。  そして、R3C9をコピーして、表Bの結果を表示させる範囲に貼り付けて下さい。  以上です。

tomomiffy
質問者

補足

再度質問です。 前提がExcel2000になります。 頂いた数式内のセルの値が2000ではどのようになりますでしょうか? 追いながらやってみたのですが、途中でこんがらがってしまいました。。 申し訳ございませんが、2000では何の値になるか、教えていただけないでしょうか? 何度もお手数お掛けして申し訳ございません。 宜しくお願い致します。

関連するQ&A