重複ありデータのセル位置(行番号、列番号)を関数で得る | |
---|---|
[132488] 重複ありデータのセル位置(行番号、列番号)を関数で得る- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ ゴリ -(2021/07/15(15:45)) □U R L/ 【環境:Windows10、EXCEL2007】 以下のURLで「SUMPRODUCT関数」を用いて指定値の行番号、列番号を求める 方法が解説されています。 h ttp://office-qa.com/Excel/ex299.htm このページの最初の表で[A3][B1]セルも「ぞう」だった場合、以下の各ケースでは どのようにして行番号、列番号を得るのでしょうか? A B 1 さる ぞう 2 きりん ぞう 3 ぞう かめ ●ケース1:行方向に検索して最初に見つかった「1行目、2列目」[B1]を得る ●ケース2:行方向に検索して最後に見つかった「3行目、1列目」[A3]を得る ●ケース3:行方向に検索して2番目に見つかった「2行目、2列目」[B2]を得る ●ケース4:列方向に検索して最初に見つかった「3行目、1列目」[A3]を得る ●ケース5:列方向に検索して最後に見つかった「2行目、2列目」[B2]を得る ●ケース6:列方向に検索して2番目に見つかった「1行目、2列目」[B1]を得る VBAや検索ではなく、関数で取得する方法があれば、教えてください。 ++++++++++++++++++++ OS ⇒OTHER Version⇒Excel 2007 ++++++++++++++++++++ |
[132489] Re[1]: 重複ありデータのセル位置(行番号、列番号)を関数で得る- ■記事引用/メール受信=OFF■ □投稿者/ ねむねむ -(2021/07/15(16:17)) □U R L/ ケース1 =INT(AGGREGATE(15,6,(ROW(A1:B3)*10+COLUMN(A1:B3))/(A1:B3="ぞう"),1)/10) =MOD(AGGREGATE(15,6,(ROW(A1:B3)*10+COLUMN(A1:B3))/(A1:B3="ぞう"),1),10) ケース2 =INT(AGGREGATE(14,6,(ROW(A1:B3)*10+COLUMN(A1:B3))/(A1:B3="ぞう"),1)/10) =MOD(AGGREGATE(14,6,(ROW(A1:B3)*10+COLUMN(A1:B3))/(A1:B3="ぞう"),1),10) ケース3 =INT(AGGREGATE(15,6,(ROW(A1:B3)*10+COLUMN(A1:B3))/(A1:B3="ぞう"),2)/10) =MOD(AGGREGATE(15,6,(ROW(A1:B3)*10+COLUMN(A1:B3))/(A1:B3="ぞう"),2),10) ケース4 =MOD(AGGREGATE(15,6,(COLUMN(A1:B3)*10+ROW(A1:B3))/(A1:B3="ぞう"),1),10) =INT(AGGREGATE(15,6,(COLUMN(A1:B3)*10+ROW(A1:B3))/(A1:B3="ぞう"),1)/10) ケース5 =MOD(AGGREGATE(14,6,(COLUMN(A1:B3)*10+ROW(A1:B3))/(A1:B3="ぞう"),1),10) =INT(AGGREGATE(14,6,(COLUMN(A1:B3)*10+ROW(A1:B3))/(A1:B3="ぞう"),1)/10) ケース6 =MOD(AGGREGATE(15,6,(COLUMN(A1:B3)*10+ROW(A1:B3))/(A1:B3="ぞう"),2),10) =INT(AGGREGATE(15,6,(COLUMN(A1:B3)*10+ROW(A1:B3))/(A1:B3="ぞう"),2)/10) ではどうだろうか? |
[132490] Re[2]: 重複ありデータのセル位置(行番号、列番号)を関数で得る- ■記事引用/メール受信=OFF■ □投稿者/ ゴリ -(2021/07/15(16:44)) □U R L/ ねむねむ様、ありがとうございます。 Excel2007なので、AGGREGATE関数が使えないのですが、 Excel2007では、無理でしょうか? |
[132491] Re[3]: 重複ありデータのセル位置(行番号、列番号)を関数で得る- ■記事引用/メール受信=OFF■ □投稿者/ ねむねむ -(2021/07/15(17:13)) □U R L/ すまない、バージョンをきちんと確認していなかった。 ケース1 =INT(SMALL(IF(A1:B3="ぞう",ROW(A1:B3)*10+COLUMN(A1:B3),""),1)/10) =MOD(SMALL(IF(A1:B3="ぞう",ROW(A1:B3)*10+COLUMN(A1:B3),""),1),10) ケース2 =INT(LARGE(IF(A1:B3="ぞう",ROW(A1:B3)*10+COLUMN(A1:B3),""),1)/10) =MOD(LARGE(IF(A1:B3="ぞう",ROW(A1:B3)*10+COLUMN(A1:B3),""),1),10) ケース3 =INT(SMALL(IF(A1:B3="ぞう",ROW(A1:B3)*10+COLUMN(A1:B3),""),2)/10) =MOD(SMALL(IF(A1:B3="ぞう",ROW(A1:B3)*10+COLUMN(A1:B3),""),2),10) ケース4 =MOD(SMALL(IF(A1:B3="ぞう",COLUMN(A1:B3)*10+ROW(A1:B3),""),1),10) =INT(SMALL(IF(A1:B3="ぞう",COLUMN(A1:B3)*10+ROW(A1:B3),""),1)/10) ケース5 =MOD(LARGE(IF(A1:B3="ぞう",COLUMN(A1:B3)*10+ROW(A1:B3),""),1),10) =INT(LARGE(IF(A1:B3="ぞう",COLUMN(A1:B3)*10+ROW(A1:B3),""),1)/10) ケース6 =MOD(SMALL(IF(A1:B3="ぞう",COLUMN(A1:B3)*10+ROW(A1:B3),""),2),10) =INT(SMALL(IF(A1:B3="ぞう",COLUMN(A1:B3)*10+ROW(A1:B3),""),2)/10) 配列数式のため、入力時にShiftキーとCtrlキーを押しながらEnterキーで式を確定してくれ。 (確定時に式が{}で囲まれればOK) |
[132492] Re[4]: 重複ありデータのセル位置(行番号、列番号)を関数で得る- ■記事引用/メール受信=OFF■ □投稿者/ ゴリ -(2021/07/15(17:52)) □U R L/ ねむねむ様、ありがとうございます。 提示いただいた数式で、期待通りの結果を得られました。 まだ未熟で、自分でこのような数式を作成できるスキルはありませんが キモは「行番号や列番号に10を乗じて元に戻した商や余りを得る」事だと 自分なりに思ったのですが、この「からくり」が理解できません。 解説を、お願いできないでしょうか? |
[132493] Re[5]: 重複ありデータのセル位置(行番号、列番号)を関数で得る- ■ ![]() □投稿者/ ゴリ -(2021/07/15(18:20)) □U R L/ ねむねむ様、面倒なお願いをして、申し訳ありません。 式を分解して考えたら、理解できました。 一人でこのような式が書けるよう、精進いたします。 上位Versionでは、AGGREGATE関数が使えるという事も、頭に入れておきます。 どうも、ありがとうございました。 |
このトピックに書きこむ |
---|