特定のセルに指定した値を関数にて代入したい。 | |
---|---|
[133500] 特定のセルに指定した値を関数にて代入したい。- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ zumo1224 -(2023/01/07(02:23)) □U R L/ こんばんは。Excel関数について質問があります。 〇やりたいこと 以下の「元データ」があります。それをその下の「関数実行後のデータ」のように したいです。 同じidが複数個存在するデータで、同じidの中で一番最後の行に数値が 記載されています。 関数実行後のデータのように同じデータをB列の数値で埋めたいと考えています。 当然、手作業でオートフィルを行えば可能なのですが、項目が多いため、関数にて行いたいと考えています。 B列にどのような関数を実行することで可能になるでしょうか? ・元データ A B 1 id 数値 2 a 3 a 4 a 5 a 123 6 b 7 b 8 b 9 b 10 b 456 11 c 12 c 13 c 14 c 15 c 789 16 d 17 d 18 d 1234 ・関数実行後のデータ A B 1 id 数値 2 a 123 3 a 123 4 a 123 5 a 123 6 b 456 7 b 456 8 b 456 9 b 456 10 b 456 11 c 789 12 c 789 13 c 789 14 c 789 15 c 789 16 d 1234 17 d 1234 18 d 1234 |
[133501] Re[1]: 特定のセルに指定した値を関数にて代入したい。- ■記事引用/メール受信=OFF■ □投稿者/ 半平太 -(2023/01/07(10:11)) □U R L/ うーん、関数を入れると言っても、 入力すべきセル(空白)はいつも決まった位置にある訳ではないですよね? 入力すべきセルを動的に見つけて、数式を入れるとなると 「手作業で数式入力」か「VBAで数式入力」になります。 まあ、数式と言ったって、下のセルと同じ数値にするってだけのものですが。 (例:B4セルに =B5) >項目が多いため これもどんな状況なのか、もっと実状が分かる説明をいただかないと、 VBAは作れないです(さもないと余計なセルまで入力してしまう)。 |
[133502] Re[2]: 特定のセルに指定した値を関数にて代入したい。- ■記事引用/メール受信=OFF■ □投稿者/ Mike -(2023/01/07(10:51)) □U R L/ A B C D E F G [名前の管理] 1 id 数値 Val 作業列 名前 参照範囲 2 a 123 RNm id 数値 id =Sheet1!$A$2:$A$18 3 a 123 5 a 123 数値 =Sheet1!$B$2:$B$18 4 a 123 10 b 456 5 a 123 123 15 c 789 6 b 456 18 d 1234 7 b 456 8 b 456 9 b 456 10 b 456 456 11 c 789 12 c 789 13 c 789 14 c 789 15 c 789 789 16 d 1234 17 d 1234 18 d 1234 1234 E3: =IFERROR(SMALL(IF(数値<>"",ROW(数値)),ROW(A1)),"") 【お断わり】上式は必ず配列(CSE)数式として入力のこと F4: =IFERROR(INDEX(INDIRECT(F$2),$E3-1),"") セル F4 を右隣りにオートフィル 範囲 E3:G3 のフィルハンドルを下方にズズーッと(空白行が現れるまで)オートフィル C2: =IFERROR(VLOOKUP(A2,F$3:G$6,2,FALSE),"") セル C2 のフィルハンドルをズズーッと(空白セルが現れるまで)オートフィル オ・シ・マ・イ |
[133503] Re[2]: 特定のセルに指定した値を関数にて代入したい。- ■記事引用/メール受信=OFF■ □投稿者/ メジロ -(2023/01/07(10:57)) □U R L/ 半平太さんと同じような疑問ですが、B列には既に値が入っているので 式を入力するのはどうなのかな?と思いますのでC列に式を入力した 案です。 C2: =IF(A2="","",IF(B2="",SMALL($B$2:$B$18,COUNT($B$1:B1)+1),B2)) 下に必要数コピーします。 A列が記載された通りのデータでしたらこんな式でも行けます。 C2: =IF(A2="","",SMALL($B$2:$B$18,CODE(A2)-96)) |
[133504] Re[3]: 特定のセルに指定した値を関数にて代入したい。- ■ / 記事引用/メール受信=OFF■ □投稿者/ zumo1224 -(2023/01/07(11:34)) □U R L/ 回答ありがとうございます。 C列に新しい列を生成することで解決できました。 この度はありがとうございました。 |
[133505] Re[4]: 特定のセルに指定した値を関数にて代入したい。- ■ / 記事引用/メール受信=OFF■ □投稿者/ zumo1224 -(2023/01/07(11:47)) □U R L/ 一度解決を付けてしまいましたが、一度保留にさせていただきます。 C列に新しい列を生成することで元データを並び替えることは可能になりましたが、 もし、数値が昇順ではなく、完全にランダムに並んでいる場合はどのような式になりますでしょうか? |
[133506] Re[5]: 特定のセルに指定した値を関数にて代入したい。- ■記事引用/メール受信=OFF■ □投稿者/ メジロ -(2023/01/07(14:00)) □U R L/ 例えば「F2:G5」に照合表を作っておきVLOOKUP関数で数値を取得する方法が 良いのではないかと思います。 F G 2 a 1500 3 b 200 4 c 10 5 d 500 C2: =IF(A2="","",VLOOKUP(A2,$F$2:$G$5,2,FALSE)) 照合表を作らないと、こんな式でしょうか。 C2: =IF(A2="","",IF(B2="",INDEX($B$2:$B$18,AGGREGATE(15,6,ROW($A$1:$A$17)/ISNUMBER($B$2:$B$18),COUNT($B$2:B2)+1)),B2)) あるいは C2: =IF(A2="","",IF(B2="",INDEX($B$2:$B$18,AGGREGATE(15,6,ROW($A$1:$A$17)/($B$2:$B$18<>""),COUNT($B$2:B2)+1)),B2)) |
[133507] Re[6]: 特定のセルに指定した値を関数にて代入したい。- ■記事引用/メール受信=OFF■ □投稿者/ 半平太 -(2023/01/07(16:17)) □U R L/ あれー? C列でよかったんですかぁ。 「項目が多いため」とはどう云うことだったのでしょうか・・ こんなのでいいと思うのですが、何かマズいこと起きますか? ↓ C2セルに =IF(B2<>"",B2,IF(C3="","",C3)) 下にコピー ところで、エクセルのバージョンは何ですか? (複数ある場合は、一番古いバージョンが何かを教えてください) |
[133508] Re[7]: 特定のセルに指定した値を関数にて代入したい。- ■ / 記事引用/メール受信=OFF■ □投稿者/ zumo1224 -(2023/01/08(07:51)) □U R L/ 対応ありがとうございます。 EXCELのバージョンは2016になります。 式のロジックについても理解することができました。この度は誠にありがとうございました。 |
このトピックに書きこむ |
---|