- ベストアンサー
前レコードを参照するには
- コードに99が入っている最新フラグがたっているレコードの前の履歴のレコードを別シートに表示する方法について教えてください。
- 早急に教えていただきたいですが、下記のレコードについて前の履歴のレコードを別シートに表示するための関数を教えてください。
- 質問ですが、コードに99が入っている最新フラグがたっているレコードの前の履歴のレコードを別シートに表示させるにはどのような関数を使用すればよいですか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
例データ Sheet1 A1:F8 H列は作業列 1 No. 履歴 最新フラグ 商品 コード H列 2 1001 1 0 りんご 99 3 1001 2 0 りんご 99 4 1001 3 1 りんご 99 1 5 1002 1 0 みかん 30 6 1002 2 1 みかん 30 2 7 1003 1 0 かぼちゃ 99 8 1003 2 1 かぼちゃ 99 3 H列H2の式は =IF(D2=0,"",MAX($H$1:H1)+1) D列で1の行に連番を振っている。 ーーー Sheet2 結果 A2:F4 3 1001 2 0 りんご 99 5 1002 1 0 みかん 30 7 1003 1 0 かぼちゃ 99 A2の式は =INDEX(Sheet1!$A$1:$H$10,MATCH(ROW()-1,Sheet1!$H$1:$H$10,0)-1,COLUMN()) 前の行ということでー1が入っている。 F2まで横方向に式複写 A2:F2の式をA4:F4まで式複写。 ーー Imogasi方式(Googleで照会すれば同じような方法の応用が多数出る) 式の複写を多数行にしすぎるとSheet2の第5行以下の#N/Aの表示が出るが、それを防ぐにはSheet1のH列のMAXよりRow()-1が超えたら空白を返すようにする。 I関数をかぶせる。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
この質問の表現は、独りよがりではないか。 >前の履歴のレコード の意味がはっきりしない。質問例では>最新フラグ が1なのは第4行目だが セルの値が1はC列では1行しかないのか?。 第4行の履歴は3なので「前」は3-1の2で、それをB列で探せば良いか。 B列は飛んだ番号は振られて無いのか? ーー それらを、やさしいほうに勝手に解釈して 例データ A-E列 No. 履歴 最新フラグ 商品 コード 1001 1 0 りんご 99 1001 2 0 りんご 99 1001 3 1 りんご 99 例えばA8に INDEX($A$1:$E$4,MATCH(INDEX($A$1:$E$4,MATCH(1,$C$1:$C$4,0),2)-1,$B$1:$B$4,0),COLUMN()) 右方向に式を複写で 結果 A-E列 1001 2 0 りんご 99 こんなので良いのか。
補足
回答ありがとうございます。 表現があいまいで申し訳ありません。 解釈はおっしゃるとおりです。 追記しますと A B C D E 1 No. 履歴 最新フラグ 商品 コード 2 1001 1 0 りんご 99 3 1001 2 0 りんご 99 4 1001 3 1 りんご 99 5 1002 1 0 みかん 30 6 1002 2 1 みかん 30 7 1003 1 0 かぼちゃ 99 8 1003 2 1 かぼちゃ 99 というようにレコードが入ってきております。 これを先ほどの条件で抽出が可能でしょうか?
お礼
大変遅くなりました。 無事うまくできました。 ありがとうございました。