Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
集計表を隣の表に上詰めに貼り付けたい
投稿日時: 22/12/09 17:38:33
投稿者: ronboi

お世話掛けます宜しくお願いします
 
IFERROR(INDEX($A:$E,AGGREGATE(15,6,ROW($B$1:$B$31)/(LEN($B$1:$B$31&$C$1:$C$31&$D$1:$D$31&$E$1:$E$31)>0),ROW(A1)),COLUMN(A1)),"")
式を使い張り替え、上詰めしましたが
 
整理表が三行結合の為、認識せず、基本データーを各一行に直し=にて転送し書式を変えたところ
数式が認識されすべてが表示されます、。
何かよい手立て有りませんか。
宜しくお願いします。

回答
投稿日時: 22/12/10 10:02:07
投稿者: 半平太

 前回質問(同じタイトル)の続きだと思いますが、
 整理表、基本データ、数式は現在どう言う状態なのですか?
 レイアウトが分かる様に再説明して頂けませんか?
 ※無理にとは言いません(このままでも分かる人がいるかも知れないので)

回答
投稿日時: 22/12/13 10:25:42
投稿者: y.yusuke

IFERROR(INDEX($A:$E,AGGREGATE(15,6,ROW($B$1:$B$31)/(LEN($B$1:$B$31&$C$1:$C$31&$D$1:$D$31&$E$1:$E$31)>0),ROW(A1)),COLUMN(A1)),"")
 
$B$1:$B$31が2個所、
$C$1:$C$31が1個所
$D$1:$D$31が1個所
$E$1:$E$31が1個所
あります。
これがデータにある範囲です。
適宜変更してください。
 
仮にデータがB2〜E100迄あるなら、
IFERROR(INDEX($A:$E,AGGREGATE(15,6,ROW($B$2:$B$100)/(LEN($B$2:$B$100&$C$2:$C$100&$D$2:$D$100&$E$2:$E$100)>0),ROW(A1)),COLUMN(A1)),"")
 
数式を入る付ける部分も3行結合されているのでしょうか?その場合は、また数式が変わるので返信ください。

回答
投稿日時: 22/12/13 13:17:04
投稿者: んなっと

こういうことですか?
┌――┬―┬―┬―┬―┐
|12/1| 2| | | |
|  | | 4| | 6|
|  | | | 5| |
├――┼―┼―┼―┼―┤
|12/2| | | | |
|  | | | | |
|  | | | | |
├――┼―┼―┼―┼―┤
|12/3| | | 2| |
|  | 4| | | 7|
|  | | | | |
├――┼―┼―┼―┼―┤
|12/4| | | | 8|
|  | | | | |
|  | | 2| 3| |
├――┼―┼―┼―┼―┤
|12/5| | | | |
|  | | | | |
|  | | | | |
├――┼―┼―┼―┼―┤
|12/6| 1| | | |
|  | | 3| | |
|  | | | 4| |
└――┴―┴―┴―┴―┘
  
    A B C D E F   G H I J K
 1 12/1 2       12/1 2     
 2      4   6       4   6
 3       5          5  
 4 12/2         12/3    2  
 5               4    7
 6                    
 7 12/3    2    12/4      8
 8    4    7           
 9                2 3  
10 12/4      8   12/6 1     
11                3   
12      2 3          4  
13 12/5                 
14                    
15                    
16 12/6 1               
17      3              
18       4            
  
G1
=IFERROR(1*TEXT(INDEX(A:A,AGGREGATE(15,6,ROW($1:$500)/(FIND("<"&ROW($1:$500)-MOD(ROW($1:$500)-1,3)&">|",CONCAT(TEXT(ROW($1:$500)*(MOD(ROW($1:$500),3)=1),"<0>;;")&TEXT(MMULT(1*($B$1:$E$500<>""),TRANSPOSE(COLUMN($B:$E))),"|;;")))>0),ROW(G1))),"0;;"),"")
右方向・→下方向・↓
G列表示形式 日付
  
今後は表形式の具体例と、表形式の欲しい結果を必ず添えてください。

投稿日時: 22/12/15 21:55:37
投稿者: ronboi

お世話掛けます宜しくお願いします。
A1が
┌――┬―┬―┬―┬―┐
| |2 | 5|7 | |
| 1 |3 | 4|8 | |
|  |4 | 6|9 |
├――┼―┼―┼―┼―┤
| | | | | |
| 2 | | | | |
|  | | | | |
├――┼―┼―┼―┼―┤
| | | | 2| |
| 3 | 4| | | 7|
|  | | | | |
├――┼―┼―┼―┼―┤
| | | | | 8|
| 4 | | | | |
|  | | 2| 3| |
├――┼―┼―┼―┼―┤
| | | | | |
| 5 | | | | |
|  | | | | |
├――┼―┼―┼―┼―┤
| | 1| | | |
| 6 | | 3| | |
|  | | | 4| |
└――┴―┴―┴―┴―┘
 A3〜A5が結合 A6〜A9〜と三段が結合となり31日分結合されています、B列〜N列3段表示となっています
 Aを基準とし、VLOOKUPでP列のP3〜P5、P6〜P9 11段結合となっています。
 その結合P列の結合箇所に日日を記入し、VLOOKUPで、整理したいのですが
 
  説明がうまく出来ません、申し訳ありません
  何とかなりますか。
  宜しくお願いします。
 
 
 
 
 

投稿日時: 22/12/15 22:08:45
投稿者: ronboi

  お世話掛けます宜しくお願いします  んなっと様ありがとうございます。
 
  移動させたい部分に間違え無しです、済みません。
  
  G1の式を入れましたが、何も移動しません
  私のやり方変ですかね。
 

回答
投稿日時: 22/12/16 08:58:24
投稿者: んなっと

    A  B C D E F     P  Q R S
 1
 2
 3 12/1  7          12/1  7   
 4      1             1  
 5                      
 6 12/2            12/3     
 7                      
 8                     4
 9 12/3            12/5 13   
10                    6  
11        4          99   
12 12/4                   
13                      
14                      
15 12/5 13                 
16      6               
17    99                 
18 12/6                   
19                      
20                      
 
P3
=IFERROR(AGGREGATE(15,6,A$3:A$100/(FIND("<"&ROW($3:$100)&">|",CONCAT(TEXT(ROW($3:$100)*(MOD(ROW($3:$100),3)=0),"<0>;;")&TEXT(MMULT(1*($B$3:$N$100<>""),TRANSPOSE(COLUMN($B:$N))),"|;;")))>0),COUNT(P$2:P2)+1),"")
下方向・↓
Q3
=IFERROR(1*TEXT(INDEX(B:B,MATCH(INDEX($P:$P,FLOOR(ROW(Q3),3)),$A:$A,0)+MOD(ROW(Q3),3)),"0;;"),"")
右方向・→下方向・↓

回答
投稿日時: 22/12/16 09:03:49
投稿者: んなっと

Q列以降がただの文字列になってもいいなら
Q3
=IFERROR(INDEX(B:B,MATCH(INDEX($P:$P,FLOOR(ROW(Q3),3)),$A:$A,0)+MOD(ROW(Q3),3))&"","")

回答
投稿日時: 22/12/16 10:20:50
投稿者: y.yusuke

=IFERROR(INDEX($A:$N,AGGREGATE(15,6,ROW($1:$31)/(COUNTBLANK(OFFSET($B$3,ROW($1:$31)*3-3,,3,13))<(13*3)),INT((ROW(A1)-1)/3+1))*3+MOD(ROW(),3),COLUMN(A1)),"")
 
B3〜N91にデータが入っている場合です。
変更したい場合は、
=INDEX($A:$N,
の$A:$Nを日付列とデータが入っている列全体を指定
 
,AGGREGATE(15,6,ROW($1:$31)
ROW($1:$31)内の$1:$31、何日分の日付があるのか。
 
/(COUNTBLANK(OFFSET($B$3,ROW($1:$31)*3-3,,3,13))<(13*3))
$B$3を最初のデータが入っているセル
ROW($1:$31)内の$1:$31、何日分の日付があるのか。
*3-3,,3何行あるのか3行なので*3-3,,3
4行なら*4-4,,4
その次の13、BからN列迄何列あるのか13列なので13を入力COLUMNS($B:$N)の方が分かりやすかったかも。
 
<(13*3)
データ範囲が何行、何列か。3行13列なので3*13
 
((ROW(A1)-1)/3+1))*3+MOD(ROW(),3)
の3の部分、3行だからです。3か所あるので4行になるなら4に変更

回答
投稿日時: 22/12/16 11:51:30
投稿者: んなっと

なるほど、y.yusukeさん、勉強になります。
3行,4行,5行,6行,...と調べるのではなく、最初から3行,6行,...ととびとびに見ていくのですね。
素晴らしい。
  
こういう考えですね。
P3
=IFERROR(INDEX(A:A,AGGREGATE(15,6,3*ROW($1:$31)/(COUNTIF(OFFSET($B$3:$N$3,3*ROW($1:$31)-3,,3),"<>")>0),INT(ROW()/3))+MOD(ROW(),3)),"")

回答
投稿日時: 22/12/16 12:30:00
投稿者: y.yusuke

そうです。
基準となる3行の判定考えるのが面倒だったというのが主な理由ですが(;^_^A

投稿日時: 22/12/17 18:50:13
投稿者: ronboi

    んなっと様
  y.yusuke様
  ありがとうございます。
  おかげさまで、解決です、有り難うございました。
 おかげさまで、解決でき快適な仕事が出来ます。
  本当にいつもありがとうございます。
  又、何か有りましたら、宜しくお願いします。
 
 私は、説明文が下手で住みません。