- ベストアンサー
Excelで表の作成方法を教えてください~
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! 作業用の列を使った一例です。 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
その他の回答 (5)
- shorun
- ベストアンサー率42% (133/310)
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を作成するのがレベルアップにつながると思います。 なので、練習中のテーマを記載して解らない項目について質問すれば、より的確な回答が得られると思います。
お礼
ご回答ありがとうございます。 また、今回の質問の背後まで汲み取って頂き ありがとうございます。 こちらはExcel初心者で勉強中です。 今回の問題は、自分自身で考えたものです。 通常の表の縦横を入れ替えた場合、値はどのように抽出できるのか、 を考えた際に、条件ははっきりしているのにどんな式を利用できるのかが まったくわかりませんでした。 みなさん、本当にとても丁寧に教えてくださって本当に有難いです。 教えて頂いた内容は未だ半分も理解できていませんが、ひとつひとつ 使えるようになるようにがんばります。 ありがとうございました。
- kagakusuki
- ベストアンサー率51% (2610/5101)
>頂いた数式内のセルの値が2000ではどのようになりますでしょうか? 「数式内セルの値」とは何の事を指しているのでしょうか? 数式内で指定されているR2C1セルに入力されている値の事でしょうか、 それとも、表Aにおいてデータが存在している行数の事でしょうか、 それとも、表Aにおいてデータが存在している行の中で、最も下にある行の行番号の事でしょうか、 それれとも、表Aにおいて「条件(1)」と入力されているセルの行番号が、2ではなく、2000であるという意味でしょうか? 因みに、ANo.1の数式は、3列において数値が入力されているセルの中で、最も下にあるセルの行番号を自動的に検出しますから、最も下の行の行番号が、20列でも、2000列でも関係なく、同じ数式で処理する事が出来ます。(但し、行数が増える程、計算に要する時間が長くなります) このため、普通の関数とは違って、R2C1、R2C2、R2C3、の3つのセルに対して、削除や切取りする事さえしなければ、データが入力されている途中の行を、削除切取り、貼り付け、挿入等の編集を行っても構いません。
お礼
ご返答ありがとうございます。 また、私の至らない質問にも丁寧に 内容・意図を汲み取ろうとしてくださる姿勢に 心から感謝致します。 実は最初に頂きました数式のなかの、 >R2C1、R2C2、R2C3、の3つのセル がどこのセルを指すかすら理解できておりませんでした。 本当に素人で申し訳ないです。 まだまだ勉強不足です。 これから沢山勉強して、回答者様の教えてくださった式を 理解して使えるようになるようにがんばります。 お手間を取らせてしまい、本当に申し訳なかったです。 貴重なお時間をありがとうございました。
- shorun
- ベストアンサー率42% (133/310)
- shorun
- ベストアンサー率42% (133/310)
- kagakusuki
- ベストアンサー率51% (2610/5101)
まず、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の結果を表示させる範囲に貼り付けて下さい。 以上です。
補足
再度質問です。 前提がExcel2000になります。 頂いた数式内のセルの値が2000ではどのようになりますでしょうか? 追いながらやってみたのですが、途中でこんがらがってしまいました。。 申し訳ございませんが、2000では何の値になるか、教えていただけないでしょうか? 何度もお手数お掛けして申し訳ございません。 宜しくお願い致します。
お礼
ありがとうございます! この数式は超初心者の私でも理解できました! 考え方ひとつでこんなにも単純にできるなんて、本当にすごいです。。 ありがとうございました!