人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルのユーザ関数についての質問です。
横に、下記のように A,B,C のどれかに1がたっています。
Aに1だったら1、 Bに1だったら、2、Cに1だったら3にしたいのです。こういったユーザ関数はどうやって
書くといいのでしょうか?
A1,B1,C1
1,,
,,1
,1,

●質問者: isogaya
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:A1 エクセル ユーザ 関数
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● SALINGER
●27ポイント

ABCが全部1だったらどうなるかとかは、適当に改良してもらうとしてユーザー定義関数の書き方です。

http://hp.vector.co.jp/authors/VA016119/hajimete/udf1.html


Function UserMacro(A1 As Range, B1 As Range, C1 As Range) As Integer
 If A1.Value = 1 Then
 UserMacro = 1
 End If
 If B1.Value = 1 Then
 UserMacro = 2
 End If
 If C1.Value = 1 Then
 UserMacro = 3
 End If
End Function

2 ● j1960
●27ポイント

単純にこういう方法でいかがでしょうか?

function abc(a,b,c)

abc=a+b*2+c*3

end function

http://www.excel.studio-kazu.jp/lib/e1iw/e1iw.html


使う時は、セルに以下の式を記述すればOKです。

=abc(A1,B1,C1)


3 ● SALINGER
●26ポイント

問題の意図が、A列に1、B列に1、C列に1があった場合ということなら

Function UserMacro(target As Range) As Integer
 Dim i As Long
 For i = 1 To target.Rows.Count
 If Cells(i, 1).Value = 1 Then
 UserMacro = 1
 Exit Function
 End If
 Next i
 For i = 1 To target.Rows.Count
 If Cells(i, 2).Value = 1 Then
 UserMacro = 2
 Exit Function
 End If
 Next i
 For i = 1 To target.Rows.Count
 If Cells(i, 3).Value = 1 Then
 UserMacro = 3
 Exit Function
 End If
 Next i
End Function

として数式に =UserMacro(表全体を選択) とすればいいです。

http://q.hatena.ne.jp/

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ