みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

(エクセル)表から1列の別表をつくりたい。

表に入力されたものを1列に並び替えをしたいのです。(エクセル関数)
エクセルの表から、セルに入力された情報を抜き出し、並び替えたいのですが、行き詰ってしまい質問させていただきます。

(やりたいこと)
添付資料のように、事業所ごとに購入した物品が日付ごとに入力されていきます。この表を一列で並び替えることを
したいのですが、現状の表の形で1列に抜き出すやり方が思い浮かびません。ひとつずつリンクを設定していけばいいですが、
それですと、空白のセルができてしまうこともあり、空白を消すためにフィルタをやらなくてはいけず、なんとか関数でどうにかできないと質問させていただきました(つまり空白のセルは飛ばし、隙間のない1列の表に変換したいです)。


(試したこと)
(1)vlookup関数を使うために、日付の横に検索列を作ってもみましたが、同じ行に複数の抜き出すべくものがあると、
if関数のネストをいれるにも「if(c5="","",vlookup(v5,b5:r10,2,fasle)」みたくやってみましたが、c5までは取り出せても、
d5,e5,f5・・・と右にずらしていく関数式が思い当たりません。


(2)種類、数量データ入力されている全てのセルの横に(1.2.3.4.5.6.7.8.9.・・・)と数字をいれて検索列をつくり、vlookupとmatch関数の
組み合わせも試しましたが、vlookup関数の性質上、複数列に検索値(「vlookup(検索値,範囲,列番号,検索の型)」)が存在しているとこれも出来ず。



説明が不十分な点もあると思いますが、よろしくお願いいたします。もし、VBAでなければ難しいとのことでしたら、どのようなVBAを組めばいいかもお願いいたします。

投稿日時 - 2011-07-18 17:27:05

QNo.6883591

すぐに回答ほしいです

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

#3です。中途半端だったので最初から

R1セル 0
R2セル 物品の記入済数の累計
=SUM(COUNTA(B2:E2,J2:M2),R1)
下へオートフィル

T1セル 必要な行数
=MAX(R:R)

T2セル エラー処理と目的の列を見つける
=IF(U2="","",
SMALL(IF((INDEX(B:M,MATCH(U2,A:A),)<>"")*MOD(INT((COLUMN($B$1:$M$1)+2)/4),2),
COLUMN($B$1:$M$1)-1),COUNTIF($U$2:U2,U2)))
[Ctrl]+[Shft] +[Enter] で確定、配列数式。{ }で挟まれる
下へオートフィル

U2セル 個数に応じた日付の入力
=IF(ROW(U1)-1>=$T$1,"",INDEX($A$2:$A$367,MATCH(ROW(U1)-1,R:R)))
下へオートフィル

V2セル 必要な列番号が分かっているので事業所を返す
=IF($U2="","",INDEX($B$1:$M$1,$T2))
下へオートフィル

W2セル 対応するセルの値を返す
=IF($U2="","",INDEX(B:M,MATCH($U2,$A:$A),$T2))
下へオートフィル

X2セル 対応するセルの値を返す
=IF($U2="","",INDEX(F:Q,MATCH($U2,$A:$A),$T2))
下へオートフィル

要が作業列のT列になります。
(INDEX(B:M,MATCH(U2,A:A),)<>"")*MOD(INT((COLUMN($B$1:$M$1)+2)/4),2)
対応する日付の行で空白でない場合、かつ、物品名が入っている列のみ対象とする

投稿日時 - 2011-07-19 19:55:13

ANo.7

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(8)

ANo.8

回答No4,6です。
AC5セルへの入力の式が長すぎるとのことですので次のようにしてください。
AC5セルには次の式を入力して下方にオートフィルドラッグします。

=IF(COUNTIF($T:$T,ROW(A1))=0,"",INDEX($B:$B,MATCH(ROW(A1),$T:$T,0)))&IF(COUNTIF($U:$U,ROW(A1))=0,"",INDEX($B:$B,MATCH(ROW(A1),$U:$U,0)))&IF(COUNTIF($V:$V,ROW(A1))=0,"",INDEX($B:$B,MATCH(ROW(A1),$V:$V,0)))&IF(COUNTIF($W:$W,ROW(A1))=0,"",INDEX($B:$B,MATCH(ROW(A1),$W:$W,0)))&IF(COUNTIF($X:$X,ROW(A1))=0,"",INDEX($B:$B,MATCH(ROW(A1),$X:$X,0)))&IF(COUNTIF($Y:$Y,ROW(A1))=0,"",INDEX($B:$B,MATCH(ROW(A1),$Y:$Y,0)))&IF(COUNTIF($Z:$Z,ROW(A1))=0,"",INDEX($B:$B,MATCH(ROW(A1),$Z:$Z,0)))&IF(COUNTIF($AA:$AA,ROW(A1))=0,"",INDEX($B:$B,MATCH(ROW(A1),$AA:$AA,0)))

なお、AC列にはシリアル値が表示されますので表示形式を日付に変更します。
AD5セルには次の式を入力して下方にオートフィルドラッグします。

=IF(COUNTIF($T:$T,ROW(B1))=0,"",INDEX($C:$C,MATCH(ROW(B1),$T:$T,0)))&IF(COUNTIF($U:$U,ROW(B1))=0,"",INDEX($D:$D,MATCH(ROW(B1),$U:$U,0)))&IF(COUNTIF($V:$V,ROW(B1))=0,"",INDEX($G:$G,MATCH(ROW(B1),$V:$V,0)))&IF(COUNTIF($W:$W,ROW(B1))=0,"",INDEX($H:$H,MATCH(ROW(B1),$W:$W,0)))&IF(COUNTIF($X:$X,ROW(B1))=0,"",INDEX($I:$I,MATCH(ROW(B1),$X:$X,0)))&IF(COUNTIF($Y:$Y,ROW(B1))=0,"",INDEX($J:$J,MATCH(ROW(B1),$Y:$Y,0)))&IF(COUNTIF($Z:$Z,ROW(B1))=0,"",INDEX($O:$O,MATCH(ROW(B1),$Z:$Z,0)))&IF(COUNTIF($AA:$AA,ROW(B1))=0,"",INDEX($P:$P,MATCH(ROW(B1),$AA:$AA,0)))

AE5セルには次の式を入力して下方にオートフィルドラッグします。

=IF(COUNTIF($T:$T,ROW(C1))=0,"",INDEX($E:$E,MATCH(ROW(C1),$T:$T,0)))&IF(COUNTIF($U:$U,ROW(C1))=0,"",INDEX($F:$F,MATCH(ROW(C1),$U:$U,0)))&IF(COUNTIF($V:$V,ROW(C1))=0,"",INDEX($K:$K,MATCH(ROW(C1),$V:$V,0)))&IF(COUNTIF($W:$W,ROW(C1))=0,"",INDEX($L:$L,MATCH(ROW(C1),$W:$W,0)))&IF(COUNTIF($X:$X,ROW(C1))=0,"",INDEX($M:$M,MATCH(ROW(C1),$X:$X,0)))&IF(COUNTIF($Y:$Y,ROW(C1))=0,"",INDEX($N:$N,MATCH(ROW(C1),$Y:$Y,0)))&IF(COUNTIF($Z:$Z,ROW(C1))=0,"",INDEX($Q:$Q,MATCH(ROW(C1),$Z:$Z,0)))&IF(COUNTIF($AA:$AA,ROW(C1))=0,"",INDEX($R:$R,MATCH(ROW(C1),$AA:$AA,0)))

投稿日時 - 2011-07-21 06:46:37

お礼

回答ありがとうございます。

KURUMITOの関数を組む技術はものすごいと感じております。

今後もよろしくお願いいたします。

投稿日時 - 2011-07-25 01:03:48

ANo.6

回答No4です。
AC5セルへの入力の式を勘違いしていました。次の式を入力してAE5セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。

=IF(COUNTIF($T:$T,ROW(A1))=0,"",IF(COLUMN(A1)=1,TEXT(INDEX($B:$B,MATCH(ROW(A1),$T:$T,0)),"m/d"),IF(COLUMN(A1)=2,INDEX($C:$C,MATCH(ROW(A1),$T:$T,0)),IF(COLUMN(A1)=3,INDEX($E:$E,MATCH(ROW(A1),$T:$T,0)),""))))&IF(COUNTIF($U:$U,ROW(A1))=0,"",IF(COLUMN(A1)=1,TEXT(INDEX($B:$B,MATCH(ROW(A1),$U:$U,0)),"m/d"),IF(COLUMN(A1)=2,INDEX($D:$D,MATCH(ROW(A1),$U:$U,0)),IF(COLUMN(A1)=3,INDEX($F:$F,MATCH(ROW(A1),$U:$U,0)),""))))&IF(COUNTIF($V:$V,ROW(A1))=0,"",IF(COLUMN(A1)=1,TEXT(INDEX($B:$B,MATCH(ROW(A1),$V:$V,0)),"m/d"),IF(COLUMN(A1)=2,INDEX($G:$G,MATCH(ROW(A1),$V:$V,0)),IF(COLUMN(A1)=3,INDEX($K:$K,MATCH(ROW(A1),$V:$V,0)),""))))&IF(COUNTIF($W:$W,ROW(A1))=0,"",IF(COLUMN(A1)=1,TEXT(INDEX($B:$B,MATCH(ROW(A1),$W:$W,0)),"m/d"),IF(COLUMN(A1)=2,INDEX($H:$H,MATCH(ROW(A1),$W:$W,0)),IF(COLUMN(A1)=3,INDEX($L:$L,MATCH(ROW(A1),$W:$W,0)),""))))&IF(COUNTIF($X:$X,ROW(A1))=0,"",IF(COLUMN(A1)=1,TEXT(INDEX($B:$B,MATCH(ROW(A1),$X:$X,0)),"m/d"),IF(COLUMN(A1)=2,INDEX($I:$I,MATCH(ROW(A1),$X:$X,0)),IF(COLUMN(A1)=3,INDEX($M:$M,MATCH(ROW(A1),$X:$X,0)),""))))&IF(COUNTIF($Y:$Y,ROW(A1))=0,"",IF(COLUMN(A1)=1,TEXT(INDEX($B:$B,MATCH(ROW(A1),$Y:$Y,0)),"m/d"),IF(COLUMN(A1)=2,INDEX($J:$J,MATCH(ROW(A1),$Y:$Y,0)),IF(COLUMN(A1)=3,INDEX($N:$N,MATCH(ROW(A1),$Y:$Y,0)),""))))&IF(COUNTIF($Z:$Z,ROW(A1))=0,"",IF(COLUMN(A1)=1,TEXT(INDEX($B:$B,MATCH(ROW(A1),$Z:$Z,0)),"m/d"),IF(COLUMN(A1)=2,INDEX($O:$O,MATCH(ROW(A1),$Z:$Z,0)),IF(COLUMN(A1)=3,INDEX($Q:$Q,MATCH(ROW(A1),$Z:$Z,0)),""))))&IF(COUNTIF($AA:$AA,ROW(A1))=0,"",IF(COLUMN(A1)=1,TEXT(INDEX($B:$B,MATCH(ROW(A1),$AA:$AA,0)),"m/d"),IF(COLUMN(A1)=2,INDEX($P:$P,MATCH(ROW(A1),$AA:$AA,0)),IF(COLUMN(A1)=3,INDEX($R:$R,MATCH(ROW(A1),$AA:$AA,0)),""))))

投稿日時 - 2011-07-19 12:02:05

お礼

回答ありがとうございます。
数式バーに入力したところ、数式が長すぎるということで、使用できませんでした。

複数セルに割り振って使う関数式でしょうか?

投稿日時 - 2011-07-20 22:55:04

ANo.5

本件は課題のタイプ(型)としては、「表の組み換え」である。
表の組み換えは、エクセルでは、関数では式が複雑になる。
本件では4品目と固定しているようだが、2品目の場合の日もあって変動するだろう。
こういう数が変動するものはややこしくなる。(4列1定で在れば1列に並べなおすのはまだやさしいが)
私がいつも言っているが、表の組み換えは、VBA向けの課題である。
本件は質問例を補足したと言うのだが、それでも、要領を得ず、よくわからない。
勝手に例を作って、VBAとともに、載せておく。(疑問点は後記。それだけ不完全なのは覚悟)
例データ #1で私の言った「テキストで、例データを質問に載せ方」なのだが、見た目はどうかな。
Sheet1 A1:I5
-A事業所
ー種類種類種類種類数量数量数量数量
4月1日ペン筆のりゴム1247
4月2日筆マーカークリップ鉛筆3452
4月3日鉛筆紙A4ケースホルダ2435
・・・
ーー
標準モジュールに
Sub test01()
Dim sh1, sh2
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
d = sh1.Range("A65536").End(xlUp).Row
MsgBox d
k = 1
For i = 3 To d '第3行目から最終行までデータを対象にする繰り返し
For j = 2 To 5 '1つの行でB列からE列まで繰り返し
sh2.Cells(k, "A") = sh1.Cells(i, "A") '日付
sh2.Cells(k, "B") = sh1.Cells(i, j) '商品
sh2.Cells(k, "C") = sh1.Cells(i, j + 4) '数量
k = k + 1 'Sh2の次の行に書く用意
Next j
Next i
End Sub
ーー
結果
Sheet2
2011/4/1ペン1
2011/4/1筆2
2011/4/1のり4
2011/4/1ゴム7
2011/4/2筆3
2011/4/2マーカー4
2011/4/2クリップ5
2011/4/2鉛筆2
2011/4/3鉛筆2
2011/4/3紙A44
2011/4/3ケース3
2011/4/3ホルダ5
======
下記の点が説明無く判らない。
(1)1事業所で1日に4品目以上あったときはどういうデータになるのか?
(2)B事業所のデータはどういう風(シートおよび行と列の有様)に記録されるのか?
そういうことが、しっかり質問に文章で説明できない段階では、関数にしてもVBAにしても、取り組むのは現在では無理だろう。

投稿日時 - 2011-07-19 09:41:48

補足

(2)の補足内容にミスがありましたので、すべて貼り付けなおさせていただきます。


(1)1事業所で1日に4品目以上あったときはどういうデータになるのか?
→4品以上ないため、現在のフォームでは想定しておりません。


(2)B事業所のデータはどういう風(シートおよび行と列の有様)に記録されるのか?
そういうことが、しっかり質問に文章で説明できない段階では、関数にしてもVBAにしても、取り組むのは現在では無理だろう。
→B事業所だけで表ができているとすると、以下のような説明になります。(A2.A3・・これはエクセルのセル番号を意味してます)

A21/1、A31/2、A41/3・・・と縦に入り、B1種類、C1種類、D1種類、E1種類、F1数量、G1数量、H1数量、I1数量 と以上のような項目にてフォームが出来上がっております。
そして、1/1を例としてあげると、B2ペン、C2鉛筆、D2のり、E2はさみ、F2 3個、G2 1つ、H2 3つ、I2 4つとなっていきます。(単位は表計算上は除きます)


B事業所だけを取り出すと、上記にようになります。

次に全体ですが、A事業所は”種類 種類 数量 数量”と、入力欄はそれぞれ2つ設け、B事業所に関しては、”種類 種類 種類 種類 数量 数量 数量 数量”と上記にように4つ設け、C事業所については、”種類 数量”と入力欄は一つずつ設ける形になっております。

ただし、表は左から各事業所が自分の事業所欄で左から詰めて入力すればいいところを、左詰めに入力されていないこともあるため、縦列へ表を組み替える場合は、上詰めにて記載したいという点もあります。


よろしくお願いいたします。

投稿日時 - 2011-07-20 23:29:00

お礼

回答ありがとうございます。
説明至らぬ点について、補足させていただきます。

(1)1事業所で1日に4品目以上あったときはどういうデータになるのか?
→4品以上ないため、現在のフォームでは想定しておりません。


(2)B事業所のデータはどういう風(シートおよび行と列の有様)に記録されるのか?
そういうことが、しっかり質問に文章で説明できない段階では、関数にしてもVBAにしても、取り組むのは現在では無理だろう。
→B事業所だけで表ができているとすると、以下のような説明になります。(A2.A3・・これはエクセルのセル番号を意味してます)

A21/1、A31/2、A41/3・・・と縦に入り、B2種類、C2種類、D2種類、E2種類、F2数量、G2数量、H2数量と以上のような項目にてフォームが出来上がっております。
そして、1/1を例としてあげると、B3ペン、C3鉛筆、D3のり、E3はさみ、F3 3個、F3 2個、G3 1つ、H3 3つ となっていきます。(単位は表計算上は除きます)

B事業所だけを取り出すと、上記にようになります。

次に全体ですが、A事業所は”種類 種類 数量 数量”と、入力欄はそれぞれ2つ設け、B事業所に関しては、”種類 種類 種類 種類 数量 数量 数量 数量”と上記にように4つ設け、C事業所については、”種類 数量”と入力欄は一つずつ設ける形になっております。

ただし、表は左から各事業所が自分の事業所欄で左から詰めて入力すればいいところを、左詰めに入力されていないこともあるため、縦列へ表を組み替える場合は、上詰めにて記載したいという点もあります。

投稿日時 - 2011-07-20 23:18:13

ANo.4

図が読み取れにくいのですがそれぞれの項目の具体的なデータはB5セルからR5セルの下方に入力されているとします。
そこで統一された表でもないことから式はかなり複雑になりますので初めに作業列をT列からAA列に作るとしてT5セルには次の式を入力してAA5セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。

=IF(OR($B5="",COLUMN(A1)>8),"",(IF(AND(COLUMN(A1)=1,$C5<>""),MAX($S$4:$AA4)+COUNTIF($S5:S5,">0")+1,0)+IF(AND(COLUMN(A1)=2,$D5<>""),MAX($S$4:$AA4)+COUNTIF($S5:S5,">0")+1,0)+IF(AND(COLUMN(A1)=3,$G5<>""),MAX($S$4:$AA4)+COUNTIF($S5:S5,">0")+1,0)+IF(AND(COLUMN(A1)=4,$H5<>""),MAX($S$4:$AA4)+COUNTIF($S5:S5,">0")+1,0)+IF(AND(COLUMN(A1)=5,$I5<>""),MAX($S$4:$AA4)+COUNTIF($S5:S5,">0")+1,0)+IF(AND(COLUMN(A1)=6,$J5<>""),MAX($S$4:$AA4)+COUNTIF($S5:S5,">0")+1,0)+IF(AND(COLUMN(A1)=7,$O5<>""),MAX($S$4:$AA4)+COUNTIF($S5:S5,">0")+1,0)+IF(AND(COLUMN(A1)=8,$P5<>""),MAX($S$4:$AA4)+COUNTIF($S5:S5,">0")+1,0))*1)

そこでお求めの表ですがAC列とAD列に表示させるとしてAC5セルには次の式を入力してAD5セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。

=IF(COUNTIF($T:$T,INT((ROW(A1)-1)/2)+1)=0,"",IF(COLUMN(A1)=1,TEXT(INDEX($B:$B,MATCH(INT((ROW(A1)-1)/2)+1,$T:$T,0)),"m/d"),IF(AND(COLUMN(A1)=2,MOD(ROW(A1),2)=1),INDEX($C:$C,MATCH(INT((ROW(A1)-1)/2)+1,$T:$T,0)),IF(AND(COLUMN(A1)=2,MOD(ROW(A1),2)=0),INDEX($E:$E,MATCH(INT((ROW(A1)-1)/2)+1,$T:$T,0))))))&IF(COUNTIF($U:$U,INT((ROW(A1)-1)/2)+1)=0,"",IF(COLUMN(A1)=1,TEXT(INDEX($B:$B,MATCH(INT((ROW(A1)-1)/2)+1,$U:$U,0)),"m/d"),IF(AND(COLUMN(A1)=2,MOD(ROW(A1),2)=1),INDEX($D:$D,MATCH(INT((ROW(A1)-1)/2)+1,$U:$U,0)),IF(AND(COLUMN(A1)=2,MOD(ROW(A1),2)=0),INDEX($F:$F,MATCH(INT((ROW(A1)-1)/2)+1,$U:$U,0))))))&IF(COUNTIF($V:$V,INT((ROW(A1)-1)/2)+1)=0,"",IF(COLUMN(A1)=1,TEXT(INDEX($B:$B,MATCH(INT((ROW(A1)-1)/2)+1,$V:$V,0)),"m/d"),IF(AND(COLUMN(A1)=2,MOD(ROW(A1),2)=1),INDEX($G:$G,MATCH(INT((ROW(A1)-1)/2)+1,$V:$V,0)),IF(AND(COLUMN(A1)=2,MOD(ROW(A1),2)=0),INDEX($K:$K,MATCH(INT((ROW(A1)-1)/2)+1,$V:$V,0))))))&IF(COUNTIF($W:$W,INT((ROW(A1)-1)/2)+1)=0,"",IF(COLUMN(A1)=1,TEXT(INDEX($B:$B,MATCH(INT((ROW(A1)-1)/2)+1,$W:$W,0)),"m/d"),IF(AND(COLUMN(A1)=2,MOD(ROW(A1),2)=1),INDEX($H:$H,MATCH(INT((ROW(A1)-1)/2)+1,$W:$W,0)),IF(AND(COLUMN(A1)=2,MOD(ROW(A1),2)=0),INDEX($L:$L,MATCH(INT((ROW(A1)-1)/2)+1,$W:$W,0))))))&IF(COUNTIF($X:$X,INT((ROW(A1)-1)/2)+1)=0,"",IF(COLUMN(A1)=1,TEXT(INDEX($B:$B,MATCH(INT((ROW(A1)-1)/2)+1,$X:$X,0)),"m/d"),IF(AND(COLUMN(A1)=2,MOD(ROW(A1),2)=1),INDEX($I:$I,MATCH(INT((ROW(A1)-1)/2)+1,$X:$X,0)),IF(AND(COLUMN(A1)=2,MOD(ROW(A1),2)=0),INDEX($M:$M,MATCH(INT((ROW(A1)-1)/2)+1,$X:$X,0))))))&IF(COUNTIF($Y:$Y,INT((ROW(A1)-1)/2)+1)=0,"",IF(COLUMN(A1)=1,TEXT(INDEX($B:$B,MATCH(INT((ROW(A1)-1)/2)+1,$Y:$Y,0)),"m/d"),IF(AND(COLUMN(A1)=2,MOD(ROW(A1),2)=1),INDEX($J:$J,MATCH(INT((ROW(A1)-1)/2)+1,$Y:$Y,0)),IF(AND(COLUMN(A1)=2,MOD(ROW(A1),2)=0),INDEX($N:$N,MATCH(INT((ROW(A1)-1)/2)+1,$Y:$Y,0))))))&IF(COUNTIF($Z:$Z,INT((ROW(A1)-1)/2)+1)=0,"",IF(COLUMN(A1)=1,TEXT(INDEX($B:$B,MATCH(INT((ROW(A1)-1)/2)+1,$Z:$Z,0)),"m/d"),IF(AND(COLUMN(A1)=2,MOD(ROW(A1),2)=1),INDEX($O:$O,MATCH(INT((ROW(A1)-1)/2)+1,$Z:$Z,0)),IF(AND(COLUMN(A1)=2,MOD(ROW(A1),2)=0),INDEX($Q:$Q,MATCH(INT((ROW(A1)-1)/2)+1,$Z:$Z,0))))))&IF(COUNTIF($AA:$AA,INT((ROW(A1)-1)/2)+1)=0,"",IF(COLUMN(A1)=1,TEXT(INDEX($B:$B,MATCH(INT((ROW(A1)-1)/2)+1,$AA:$AA,0)),"m/d"),IF(AND(COLUMN(A1)=2,MOD(ROW(A1),2)=1),INDEX($P:$P,MATCH(INT((ROW(A1)-1)/2)+1,$AA:$AA,0)),IF(AND(COLUMN(A1)=2,MOD(ROW(A1),2)=0),INDEX($R:$R,MATCH(INT((ROW(A1)-1)/2)+1,$AA:$AA,0))))))

かなりの時間がかかりました。本来ならば元の表の作り方をもっと分かり易い表になっていればよいのですが。一度試験してみてください。

投稿日時 - 2011-07-19 09:32:59

ANo.3

途中まで
R1セル 0
R2セル =SUM(COUNTA(B2:E2,J2:M2),R1)
下へオートフィル
T2セル
=IF(ROW(T1)-1>=MAX(R:R),"",INDEX($A$2:$A$367,MATCH(ROW(T1)-1,R:R)))
下へオートフィル

投稿日時 - 2011-07-19 08:40:30

ANo.2

添付図から読み取れないが、逆ではだめなのか?
E2セル =A2&B2
H2セル
=IF(ISNA(MATCH($G2&I$1,$E:$E,0)),"",INDEX($C:$C,MATCH($G2&I$1,$E:$E,0)))
I2セル
=IF(ISNA(MATCH($G2&I$1,$E:$E,0)),"",INDEX($D:$D,MATCH($G2&I$1,$E:$E,0)))
H2:I2セルを選択して 右へ下へオートフィル

当方VBAは不得意だが、ある規則(法則)に従い人が行っている作業を自動化できるのがVBAの特長だと思う
つまり、誰が行っても同じ結果が得られるならVBAで表せると思っている

投稿日時 - 2011-07-18 23:06:43

補足

回答ありがとうございます。補足させていただきます。

各事業所のデータが一列ではなく、CoalTarさんの作成した頂いた右側の表のようになっているものをコピペして一列のものにしていますので、逆にするのは現状では難しいです。

また、各事業所が入力する場合、一日複数のものを入力することもあり、各事業所一日4箇所入力できるような仕様になっております。(一日1行なので、複数の列使って入力しています)

             A事業所                    B事業所
   種類   種類  種類  種類  数量  数量  数量 数量     ・・・
4/1  ペン   筆   のり  ゴム   1    2   4  7      ・・・


・ 

上記のように、左側にまとめて種類を記載して、右側に対応する数量を入力しています。   

    

投稿日時 - 2011-07-18 23:44:19

ANo.1

添付画像が拡大しても、ぼやけて内容がわからない。シートをコピーして、質問文章の中に貼り付ければテキストで張り付くので判りやすいのだが。
ーー
その際、私は回答では、空白セル個所が、列的に、左詰されてわかりにくくなるので、空白セルにはハイフンなど入れて、凌いでいる。もっと良い方法があるのかもしれないが、この点は気をつけて。
質問シートに貼り付けた時の見た目ば、不自然さは無いが、質問として見られると、列的にくづれる化も知れないので、張り付けたあと工夫が必要とおもう。

投稿日時 - 2011-07-18 21:25:18

お礼

アドバイスありがとうございます。

テキストの貼り付けを行ってみました。

投稿日時 - 2011-07-18 22:00:02

あなたにオススメの質問