人に聞けない痔の悩み、これでスッキリ >>

X列の1マス1マスに0~9の数字のいずれかが入ると、X列に入った0~9の値に反応して、そのX列の1マスを水平上にかつ、中心として、V列W列とY列Z列のセルに0~9の数字のいずれかが入ります。

更に、V列W列とY列Z列に入った数値を記号に変換して、その変換内容は
0が●で
1~9は×
になります。

マクロボタンを押すと
行指定ができるダイアログボックスが出て来て
行指定されたセルXに0~9の数字を0から1つずつ入れて
別sheetの、0の場合はB20にV列の値を、W列はC20、Y列はD20、Z列はE20にと変換内容に沿ってコピペしたいです。

Xに3が入るということは、別sheetの(B23:E23)に変換された記号が入ってる形であることが正解の形になります。

私の下手な質問がおおまかにご理解して頂けたと思いますので、ここから質問を綺麗にまとめます。

Asheet上にあるマクロボタンからBsheetのX列の行番号指定に始まり、その行番号指定したXセルに0~9が1つずつ入りますと、セルA20~A29に0~9と数字を付ってますので
V列はAsheetのB20から下に、W列はAsheetのC20から下に、Y列はAsheetのD20から下に、Z列はAsheetのE20から下に

マクロボタンで行指定する度に変換内容に沿って変換された記号が(B20:E20)~(B29:E29)にと一気にずらーっと入ってるのが希望なんです。

ご協力頂けたら嬉しい。

A 回答 (3件)

朗報です。


下のコードをB20セルに入力すれば、E29までオートフィルしても同じ結果を出すことができました。
こちらのコードの方がおすすめです。

=IF(COUNTIF(INDIRECT("Bsheet!"&CHAR(64+20+COLUMN())&"1:"&CHAR(64+20+COLUMN())&$A$1),ROW()-20)=0,"●","×")

<解説>
CHAR関数  :使用中の文字セットから、そのコード番号に対応する文字を返す関数です。
ROW関数  :ROW(参照)のように使いそのセルの行番号を返します。ROW()とするとそのセルが参照されます。
COLUMN関数:ROW関数と対となるもので、こちらは参照セルの列番号を返します。使い方はROW関数と同じ。

ぜひ、どんどん関数を覚えて言ってください。
ああ、こういう関数があったなということだけでも覚えておけば、ささっと調べて、やりたいことがすぐできるように
なると思います。
    • good
    • 0

1行目からV,W,Y,Z列のそれぞれで数字をカウントするのですかね?


そういうことならCOUNTIF関数でいけそうです。

<使い方> COUNTIF(範囲, 検索条件)

例えば、設定するためのセルがAsheetのA1にあるとき
V列について セル番地B20に

=IF(COUNTIF(INDIRECT("Sheet2!V1:V"&$A$1),ROW()-20)=0,"●","×")

と書いて、B29まで下にオートフィルすると上手くいきます。
W,Y,Z列(C,D,E列)については  "Sheet2!V1:V"  の Vをそれぞれのものに換えていただけると
正しい結果が得られるはずです。

私の推測がまちがっている、または、まだよくわからないことがあれば補足お願いします。
    • good
    • 0

まず、ちょっと気になること。

 <質問>V,W,Y,Z列にはどんな数字が入るんですか?触れられてませんが。
この質問は私の考え方方法で重要なのでお聞きしました。

しかし、やりたいことはIf関数とINDIRECT関数を使えばどうにかなりそうなのがわかりました。

説明しておきます。
①まず、X列の行指定用セルを確保しておいて、そこに数字を入れます。(これをaとする)
②そうすると、INDIRECT関数を用いてX行a列にある数字が入れられる。

③B20~B29にはIF関数とINDIRECT関数が組み合わされた数式が入っており、
 X列a行の数字によって"●"か"×"かが決まって表示される。

-----------------------------------------------------------------------------------------------------------------------
 ここで重要なのが、V,W,Y,Z列の数字がX列の数字(0~9)にどう影響するのかと言うこと。
 それが簡単な数式で表せるのなら、B20~B29にはその数式をすでにねじ込んでおくと楽なのでこうしました。
 つまり、最初の質問の答えによると言うことですね。
----------------------------------------------------------------------------------------------------------------------

④C~E列においても同様。

これ以上は今の状態では応え兼ねます。お力添えできていれば幸いです。
    • good
    • 0
この回答へのお礼

V、W、Y、Z列にはXに数字が入るとその数字が何個あるかをカウントする形になってますので、カウント結果が入ります。X列の指定された行番号で形(数字)が変わってきます。

お礼日時:2019/07/20 00:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング