• ベストアンサー

A列(10行)とB列(10行)の全ての組み合わせをC列にリストアップしたい。

何度もすみません。 前回の質問で文字列の組み合わせの方法は理解いたしました! 本当にありがとうございます。 追加で質問になるのですが、タイトルにあるように(※数字は仮です) A列(10行)とB列(10行)の全ての組み合わせをC列にすべて(100行?)リストアップしたいと考えています。 また並び方は A1 A2 A3 ・ ・ ・ B1 B2 ・ ・ というようにしたいです。 このようにするには C列にどのような関数を入れればいいのでしょうか? どうかよろしくお願いいたします。

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

  • ベストアンサー
回答No.6

#3,#4です C1セルに =IF(COUNTA(A:A)*COUNTA(B:B)<ROW(),"", INDEX(A:A,(ROW()-1)/COUNTA(B:B)+1)&" " &INDEX(B:B,MOD(ROW()-1,COUNTA(B:B))+1)) で良かったです。余計なものを足してました。 添付図、薄い緑は手入力です。水色には数式が入っています D、E列のような数値が求められれば、(INDEX関数を使って)結果が出せるのはわかるでしょうか? 以下、その数値を求める方法です。 素材として連番があります。 F列は、行番号です。F1セルに =ROW() G列は、連番をB列の個数で割ったものです。 求めたい値を出すために (連番-1)/B列の個数 +1 としています G1 =(F1-1)/COUNTA(B:B)+1 =INT((F1-1)/COUNTA(B:B)+1)とすれば求めたい値になります。 H列は連番をB列の個数で割った余りです。 求めたい値を出すために((連番-1)/B列の個数)のあまり +1 としています F1 =MOD(F1-1,COUNTA(B:B))+1 I1セル =INDEX(A:A,G1) J1セル =INDEX(B:B,H1) としてA列、B列の値を引っ張ってきます。 ここでINDEXの第2引数ですが、小数になっている場合切り捨てられて計算されるので、INTを追加しなくても良いです。 わかりにくくなる可能性を加味してINTを加えても良いでしょう。 ある程度の説明はしたつもりですが、それでもわからない点があれば再度質問してください

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

その他の回答 (5)

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

こんばんは! No.1です。 >ちなみにこれは行数が20.30.40と増えてもこのままの数式で対応できますでしょうか? とありましたので 無理矢理の方法を持ってきました。 とりあえず、A列B列とも100行まで対応する数式です。 (範囲指定を広げれば何行でも対応できますが、行数が多すぎると やけに縦長の表になってしまいますよね?) 本来であれば、下の画像の右側の表のように 整理した方が良いと思うのですが・・・ ためしに、C1セルに =INDEX($A$1:$A$100,INT((ROW(A1)-1)/COUNTA($B$1:$B$100)+1))&INDEX($B$1:$B$100,IF(MOD(ROW(A1),COUNTA($B$1:$B$100))=0,COUNTA($B$1:$B$100),MOD(ROW(A1),COUNTA($B$1:$B$100)))) としてオートフィルで下へコピーしてみてください。 どうしても縦に表示したいのであれば 希望に近い形になると思います。 以上、何度も失礼しました。m(__)m

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

#3です 特に間違っているという返答がないのでいいのかな。 >ちなみにこれは行数が20.30.40と増えても >このままの数式で対応できますでしょうか? 数式が理解できていないまま回答するのは避けたいですが、 順序を追って説明するのも大変なので、最終回答のみです。ごめんなさいm(_ _)m C1セルに =IF(COUNTA($A:$A)*COUNTA($B:$B)<ROW(),"", INDEX($A$1:INDEX($A:$A,COUNTA($A:$A)),(ROW()-1)/COUNTA($B:$B)+1)&" " &INDEX($B$1:INDEX($B:$B,COUNTA($B:$B)),MOD(ROW()-1,COUNTA($B:$B))+1)) わからない部分のみ、再度質問していただければうれしく思います。

biwanoha
質問者

お礼

本当にありがとうございます。 正直、いただいた内容数字以外まったく理解できてません・・・ おっしゃる通り、きちんと自分で理解してそのうえでわからない部分を補足にて説明させていただきます。 本当にありがとうございます!

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

推測でC1セルに =INDEX($A$1:$A$10,(ROW()-1)/10+1)&" "&INDEX($B$1:$B$10,MOD(ROW()-1,10)+1) 下へオートフィル 添付図参照 参考まで

biwanoha
質問者

お礼

画像まで・・・・ ありがとうございます。 無事できました。 ちなみにこれは行数が20.30.40と増えてもこのままの数式で対応できますでしょうか?

biwanoha
質問者

補足

たびたびすみません。 実際に入力を試すと数字は入力した(この場合は「10」)までしか組み合わせができませんでした。 この「10」という数字を可変といいますか入れた行数分にすることはできますでしょうか?

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

質問の意味がわかりにくい。 >(※数字は仮ですとは? 10行の例でなく3X3列ぐらいの例を挙げられないのか。 その過程で得られる、抽象化能力(パターン化)こそ大切なんだ。 質問とは異なるが B列を縦のものを横にする(コピーし、形式を選択して貼り付けー行列を入れ替える) 文字列でやっているが数字でも同じだと思う。 a x b y c z を - x y z a b c にする そしてB2には =$A2&B$1と入れて、縦横に式を複写すると 組み合わせが出来るよ。 - x y z a ax ay az b bx by bz c cx cy cz 2次元の組み合わせの場合はこれがわかりやすい。 これB2:D4のデータを、ある列に1列化することも可能だが。 =INDEX($B$2:$D$4,MOD(ROW()-2,3)+1,INT((ROW()-2)/3)+1) をF2に入れて、下方向に式を複写する。 ax bx cx ay by ・・・

biwanoha
質問者

お礼

ありがとうございます。 理解するのにも一苦労でした・・・ 勉強します。

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

こんばんは! 参考になるかどうか分かりませんが・・・ 一例として、 とりあえずA・B列ともデータ数は10ということでの数式になります。 A1~A10・B1~B10セルにデータが入っていると仮定して C1セルに =INDEX($A$1:$A$10,INT((ROW()-1)/10)+1)&INDEX($B$1:$B$10,IF(MOD(ROW(),10)=0,10,MOD(ROW(),10))) としてオートフィルで下へコピーではどうでしょうか? 尚、エラー処理はしていません。 以上、参考になれば幸いですが、 他に良い方法があれば軽く読み流してくださいね。m(__)m

biwanoha
質問者

お礼

ありがとうございます。 無事できました。 ちなみにこれは行数が20.30.40と増えてもこのままの数式で対応できますでしょうか?

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

関連するQ&A

  • A列にあってB列にはない単語をC列に残したいです。

    エクセルで、「A列とB列にそれぞれ単語がたくさん入力されています。A列にはあるが、B列にはない単語を抽出して、C列に残す」ということをやりたいのですが、どなたか関数を教えていただけないでしょうか? すみませんが、エクセルの関数を教えていただけないでしょうか。 単語のリストが2つあります。 A列に、片方のリストを入れ、B列にもう片方のリストを入力してあります。 ■やりたいこと 1: 2つのリストには重複している単語があるため、重複している単語は削除して、A列だけに存在する単語をC列に入れたいと思っています。 ■やりたいこと 2: 最終的には、C列には、空のセルを作らず、上のほうの行に詰めた形に整えたいと思っております。 以上の2つについて、どちらかだけでもやり方を教えていただければ、大変助かります。 どうぞよろしくお願いします。

  • A列とB列の合計を行ごとにC列に表示させたい

    お早うございます。エクセルのセルの計算で教えてほしいのですが、A列とB列の合計を行ごとにC列に表示させたいのです。例えばA1のセルに“1", B1のセルに“2"と入れます。それで、C1のセルに“=A1+B1"と入力します。そうするとC1のセルは“3”と表示されますよね。そこで同じように違った数字の合計を100行ほどそれぞれC列に表示させたいのです。セルごとではなく縦全部列ごとでもかまいません。宜しくお願いします。

  • Excelでの列比較(A列とB列の組合せ、C列とD列の組合せ)

    はじめまして、Excel初心者です。 現在あるデータを整理しているのですが、文字列の比較について 教えください。 ExcelでA列とB列のデータの組合せと、C列とD列のデータの組合せを 比較したいのですが、どのように行うのがベストでしょうか? Match関数やcountifなどを試しましたが、うまくできませんでした。 ※データ例 | A列 | B列 | C列 | D列 | AAAA BBBB AAAA DDDD

  • あるExcelシートの中に、A列とB列とC列に同じデータが入っている行

    あるExcelシートの中に、A列とB列とC列に同じデータが入っている行が複数あるとします。 その同じデータが入っている行を、例えばX列にチェックを入れる、と言う関数を教えて下さい。 どうぞよろしくお願い致します。

  • エクセル2007 A列多数セルを50行ごとに区切る

    A列にひたすら数字のセルがあります。これを50セルごとに区切って、B列、C列、D列・・・・・に50行ごとに割り振っていきたいのですが、こんなことを出来る関数はありますか? 複数列を1列にする関数は聞いたことがあるのですが、1列を複数列にする関数は聞いた事がありません。どうか教えてください。 こんな風にしたいというイメージ画像を添付します。よろしくお願いします。

  • エクセルで、A列に「20081020」が入っており、B列に「20081

    エクセルで、A列に「20081020」が入っており、B列に「20081030」、C列に「20090102」 と数値が入っているとします。 お分かりの通り、日付がスラッシュ無しで入っているのですが、A列に対してB,C列のような日付が何日後、もしくは何ヶ月、何日後のデータなのかわかるようにしたいです。 関数でありますでしょうか? 上記の例であればB列は10日後、C列は64日後と表示されるようにしたいです。 (数字だけでも構いません) 教えていただければ幸いです。 何卒よろしくお願いします。

  • エクセルVBA 全ての組み合わせを作る

    エクセルVBAで、全ての組み合わせを表現する方法を教えてください 既にA列に色、B列に数字、C列にサイズが入力済みだとします   A  B  C 1  色  数字 サイズ ←タイトルの行 2  赤   1  S 3  青   2  M 4  緑   3  L (完成例)   D  E  F 1  色  数字 サイズ ←タイトルの行 2  赤   1  S 3  赤   1  M 4  赤   1  L 5  赤  2  S 6  赤  2  M 7  赤  2  L 8  赤  3  S 9  赤  3  M 10 赤  3  L 11 青   1  S 12 青   1  M 13 青   1  L 14 青  2  S 15 青  2  M 16 青  2  L 17 青  3  S 18 青  3  M 19 青  3  L 20 緑   1  S 21 緑   1  M 22 緑   1  L 23 緑  2  S 24 緑  2  M 25 緑  2  L 26 緑  3  S 27 緑  3  M 28 緑  3  L ・全ての組み合わせが表現できていれば、2~28行目は上の完成例の順番でなくてもいいです ・完成はD~F列の上から(2行目から)結果を反映させ、空白行を作らないようにする ・今回はA~C列の4行まで入力されている例をあげましたが、実際はA~C列の何行まで入力されているか随時変更します ・A~C列のデータ入力は、必ず上から(2行目から)されています ・A~C列のデータ入力は、5行目以降に続くこともあります ・A~C列のデータ入力は、データがない場合もあります (データ入力がない場合)   A  B  C 1  色  数字 サイズ ←タイトルの行 2      1  S 3      2  M 4         L (この場合の完成例)   D  E  F 1  色  数字 サイズ ←タイトルの行 2      1  S 3      1  M 4      1  L 5     2  S 6     2  M 7     2  L 空白行が出来てしまってはいけないので、『まずデータ入力されている列を認識し、認識した列の情報で全ての組み合わせを作成する』という考え方なのかな?と思ったのですが、そのようなことをエクセルVBAでできるのでしょうか もし分かる方がいたら教えてください よろしくお願いします

  • A列かB列に数字が入っているセルを対称にして計算したい。

    A列とB列に数字が入っています。 A列とB列どちらともはいっていることも、入っていないこともないです。 必ずどちらかに数字が入っています。 C列で、 =100*「A列かB列数字が入っている方」 の関数が知りたいのですが。。。 よろしくお願いします。

  • vlookup関数で、任意の列ではなく、行、列

    タイトルの件、質問いたします。 =VLOOKUP(G2,A1:C3,2,FALSE) の関数があります。 これは、G2,A1の範囲の2列目の数字を返すものです。 これを、2列目ではなく、2列目の2行目の数字を返すものに出来ないでしょうか? 教えて下さい。

  • 2列の値が特定の組合せである個数

    下記のようにA列に商品名、C列に個数がずらっと並んでます。2000行程度あります。 A列 C列 商品A 30 商品B 70 商品A 65 商品C 21 商品A 30 「商品A、30個」の組合せの数 「商品B、30個」の組合せの数 「商品C、30個」の組合せの数 のように、全商品、30個限定でいくつあるかカウントしたいのです。上の例では2個になります。どんな関数を使えばいいでしょうか。 参考 C列が無くてA列だけの場合は、B1に =COUNTIF(A$1:A$2000, A1) と書いてズイっと下まで引っ張りました。重複はありますが、使用上問題ありません。

このQ&Aのポイント
  • 昨日まで通常通り動いていたのですが、本日用紙を変えたらプリントできなくなりました。
  • お使いの環境はMacOSで、接続はUSBケーブルです。
  • 関連するソフト・アプリはP-touch editorです。
回答を見る

専門家に質問してみよう