リンク内容### 実現したいこと
Excel上で表を作成(元表)、その中にIDカラムが有ります。表の中から同じIDの行(複数)データを別な表に転記したい
###ここに実現したいことを箇条書きで書いてください。
転記先の表に元表カラムを設け、指定ID値の元表カラムを数式で作成。この値で元表のデータを転記する。
前提
転記先カラムの数式は同一、転記先のデータ部の式も同一にしたい。
転記先データ部の数式は
=IF($S3<>"",INDEX(B:B,$S3),"")
$S 転記したいID値
B:B 転記したいデータの先頭カラム
転送先カラム部の数式
=IF(COUNTIF($C:$C,$T$2)>=ROW(S1),LARGE(INDEX(($C$1:$C$494=$T$2)*ROW($C$1:$C$494),,),COUNTIF($C:$C,$T$2)-ROW(S1)+1),"")
解かりずらいので改行を追加。*以下、私なりのコメントを追加
=IF(COUNTIF($C:$C,$T$2)>=ROW(S1) *IFの条件マッチした数で判断
,LARGE( *IF 真の場合で行番号を算出
INDEX( **これが解りません? 指定した範囲の行列で交差した値を取り出すと理解
($C$1:$C$494=$T$2)*ROW($C$1:$C$494) *範囲?
,,) *範囲全体?
,COUNTIF($C:$C,$T$2)-ROW(S1)+1 *LARGEの位置
)
,"" *IF 偽 ブランクを記載
)
####ここに質問の内容を詳しく書いてください。
LARGE()で元表のカラムを算出。
INDEX()はLARGE()の範囲ですが理解できません。
($C$1:$C$494=$T$2) の=は何を意味しますか?範囲($C$1:$C$494)を制約している?
($C$1:$C$494=$T$2)*ROW($C$1:$C$494) の*は何を意味しますか?=ROW($C$1:$C$494)は1です。
COUNTIF($C:$C,$T$2)-ROW(S1)+1 はLARGE()の位置。元表のIDの数--です。
発生している問題・エラーメッセージ
エラーではありません。数式の動作の詳細を訪ねています。
該当のソースコード
Excelの数式
ソースコード
=IF(COUNTIF($C:$C,$T$2)>=ROW(S1),LARGE(INDEX(($C$1:$C$494=$T$2)*ROW($C$1:$C$494),,),COUNTIF($C:$C,$T$2)-ROW(S1)+1),"")

試したこと
特に記述なし
補足情報(FW/ツールのバージョンなど)
画像2枚を添付しました。上記Excelは自作版の転記処理。元表のCがIDでID1を転記しています。行番号部、データ部の数式が見えています。

0 コメント