A       B     C         
   形式    数量  用途
1 AW-E-55    145  使用
2 SY-A-35    234    使用
3 SY-X-40    650    使用
4 CH-A-77    210    禁止
5 CH-B-50    300    禁止
6 CH-B-35    250    禁止
7 GS-P-40    450    使用
8 HJ-L-55    150    禁止
9 HJ-M-20    200    禁止

上記のような表があり、A列の値によってC列の用途をIF関数を用いて表示するにはどうすればよいのでしょうか?
 
A列の値でA1~A9の値がCH-○○以上CH-○○以下は禁止またHから始まる物は禁止というような条件でC列の用途表示区分を表示させる方法、論理式がよく分かりません。
 子供の頃から算数が苦手で>,=,<>等の等号や不等式の理解が弱いので教えていただけないでしょうか?

 どのような方法、論理式を入れると良いのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (4件)

>A列の値でA1~A9の値が



1. CH-○○以上CH-○○以下は禁止
2. Hから始まる物は禁止

実際の禁止は、この二種類よりも多いのですか?
そうすると、今の式ではもたないくなりますね。

C1:~

=IF(COUNT(FIND("CH-",A1))*(AND(--RIGHT(A1,2)>29,--RIGHT(A1,2)<81)),"禁止",IF(COUNT(SEARCH("H?-",A1)),"禁止","使用"))

1の設定部分:

AND(--RIGHT(A1,2)>29,--RIGHT(A1,2)<81)
「30」以上「80」以下
ここを実際の値に設定してください。

そのカッコの中に入れれば出来ると思います。

2.
Hから始るような、単純設定で、複数ある場合は、

{"H?-","U?-"}

このように設定できるはずです。
    • good
    • 0

VLOOKUP関数は、FALSE型が質問に多いですが、本家(出生の始まり)はTRUE型のようです。


FALSE型では表が膨大になるとのことですね。であれば
TRUE型で、表を作れば10行(数行で)以内ですむかもしれません。
TRUE型は普通は数値(封筒の重さグラム数とかの数)で段階を判別する(逆にいえば、表を構成する)のですが
CH-A01 禁止
CH-B09 許可
CH-X20 禁止
のような表が作れないか、試しに考えてみてください。
第1列目の形式の記号数字は、文字列のソート昇り順にしないとなりません。予想では、無理かなとも思いますがそういうものもあるということで
アドバイス。
例データ
表としてD1:E4に
aNEAR
cOK
fNo
jOK
A1:A10に
A列   B列(関数式結果)
aNEAR
bNEAR
cOK
dOK
eOK
fNo
gNo
hNo
iNo
jOK
B1に
=VLOOKUP(A1,$D$1:$E$4,2,TRUE)
と入れてB10まで式複写。結果上記B列。
    • good
    • 0

> データーテーブル表が膨大な物になり、頻繁にコードが変更になる


> ので都度、テーブルの修正が追い付かないもので

全部のコードを常時網羅するのが面倒くさいからルールで済ませ
ちゃおうって、そういう時こそvlookup()関数ですが。

ヘルプでvlookup()関数の第4パラメータがTRUEの場合の使い方を読
んで下さい。この場合、表に
CH-A-77 210 禁止
CH-B-51 300 使用
と書いておくと、CH-A-77以上CH-B-51未満を禁止にします。
H 150 禁止
I 400 使用
なら、Hで始まるヤツは全部禁止です。

簡単でしょ。
    • good
    • 0

複雑な条件はVLOOKUPなどを使用した方が解りやすいと思います。


「CH-○○以上CH-○○以下」は数字じゃないですし。

条件が例に挙げたものだけで、形式が固定長なら

=IF(OR(LEFT(A2,1)="H",AND(LEFT(A2,2)="CH",VALUE(RIGHT(A2,2))>=35,VALUE(RIGHT(A2,2))<=77)),"禁止","使用")
    • good
    • 0
この回答へのお礼

ご返答有難うございます。ご指摘のように数値でないアルファベットの並んだ商品表を取り扱っているもので、条件設定が分からず、困っています。
 VLOOKUPでもできるのは知っていますが、データーテーブル表が膨大な物になり、頻繁にコードが変更になるので都度、テーブルの修正が追い付かないものでIF関数で表示させたいのです。
 連絡いただいた数式を当てはめて作りたいと思います。有難うございました。

お礼日時:2005/08/29 22:54

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qバンクーバーの英語はイギリス式?フランス式?

カナダのビクトリアやバンクーバーで話されている英語は訛りがほとんどないイギリス式英語だと教わったのですが、友達からバンクーバーはフランス式英語だと言い張ります。

イギリス式英語だという根拠を示したいのですが何かいい方法は
ないでしょうか?参考になる情報源があれば是非教えてください。

Aベストアンサー

こんにちは。

私はカナダの西部、東部におりました。
個人的な意見を参考までに書かせて頂きますね。

質問者様の、イギリス式、フランス式とは、訛りと言う
認識でしょうか?

例えば、他の方も回答されているように、カナダの公用語は、
英語とフランス語の2ヶ国語です。
東部のケベック州(ケベック)ではフランス語を話す方が
多くいます。英語も、フランス語訛りの方が多いと思います。

その他東側(トロントなど)や、西側(バンクーバーなど)でも、
道路標識や、TVのニュースなどは、2ヶ国語で標示されています。

イギリス式。例えば、アメリカでは、エレベーターをエレベーター
と言いますね。イギリスではエレベータをリフトと言うそうです。

アメリカではアパートの事を、アパートメントと言いますが、
イギリスでは、フラットと言うそうです。

このように考えると、カナダの英語が現在イギリス式だとは
言いにくいかなと思います。
カナダは上記の例ですと、アメリカと同じ単語を使います。
例えば、これがオーストラリアだと、イギリスのような単語
を使います。

発音だけで比べると、イギリスの発音と、カナダ、アメリカ、
オーストラリア、発音はそれぞれ違います。

歴史的な事を考えれば、イギリス式なのかもしれませんが、
実際のところ、どうなのでしょう。
カナダの英語がすべて(ケベック以外でも)フランス式だとは、
私は思いませんが。

後は、質問者様が、どこで判断するかにもよると思います。
ちなみに、カナダに全く訛りがないことはないですよ。
発音なのか、歴史的背景なのか、使われている単語なのか、
例えばどこの国と比べてのことなのか・・・・。
それによってまた少し違ってくるかもしれませんね。

個人的意見ですので、ご参考までに☆

こんにちは。

私はカナダの西部、東部におりました。
個人的な意見を参考までに書かせて頂きますね。

質問者様の、イギリス式、フランス式とは、訛りと言う
認識でしょうか?

例えば、他の方も回答されているように、カナダの公用語は、
英語とフランス語の2ヶ国語です。
東部のケベック州(ケベック)ではフランス語を話す方が
多くいます。英語も、フランス語訛りの方が多いと思います。

その他東側(トロントなど)や、西側(バンクーバーなど)でも、
道路標識や、TVのニュースなどは、2...続きを読む

Qアクセス A列コピー B列貼り付け 更新クエリ?

お世話になります
アクセスで、たぶん更新クエリだと思うのですが

A列をコピーしB列に貼り付けさせたいのですが
初歩的な質問で申し訳ありません
わかる方お願いします

Aベストアンサー

えーと、細かい状況は分からないのですが、下記操作で解決できますか?
1.元の文字列データが入ってるテーブルを表示させる。
2.テーブルのウィンドウのタイトルのところで右クリック。
3.「テーブル デザイン」を選択。
4.「フィールド名」が空白になっている所に適当なフィールド名を入力
5.その右隣のデータ型の欄のドロップダウンメニューから「日付/時刻型」を選択。
6.もう一度タイトルのところで右クリック。
7.「データシートビュー」を選択。
8.元のデータのフィールド名のところで右クリック。
9.「コピー」をして、4.で作ったフィールド名で右クリック。
10.「貼り付け」を選択。
11.貼り付けていいかどうかのポップアップウィンドウが出てくるので、「はい」を選択。

以上でどうでしょう?
他からインポートしてきたデータを使ったことがないので、自信はないですが、通常ならこれでいけるかと思います。
また、補足が必要なら明日以降になってしまいますが補足いたします。

Q日本式英語でどう?

 ネイティブがどうしたとか本物の英語がこうしたとか、いいかげんうんざりしています。
 英語が国際語というなら各国なりの英語でいいのでは?(発音・文法も)
 英米の英語が正統という考えはもう捨てたほうがよくないですか?
 英米で仕事をするなら違うでしょうが、国際語として英語を考えるなら日本式英語でバンバンいったほうがむしろ状況も好転するのでは?(その国の言葉ができたほうがいいのは言うまでもありませんが)
 日本語もまた国際理解の一環としては、各国的日本語を了承する必要があると思いますが、皆さんいかがお考えでしょうか?
 (英語公用化も日式英語肯定でなら賛成)
 またこれを考える上での良書があれば教えて下さい。

Aベストアンサー

 賛成です。大英帝国が英語を国際語にしたけれど、第2次世界大戦以後の国際語は米語になった。とくにビジネスとエンターテイメントでは圧倒的に米語です。
 在日イギリス人のある人は、米語を馬鹿にしているけれど、使えないとビジネスが円滑に進まないので、ビジネスでは嫌々ながら米語を使い、その鬱憤を晴らすために英会話の指導ではQUEEN'S ENGLISHで叩き込んでるといってました。米語は美しくないと蔑んでいます。それからロンドンの下層の英語も下品だと。
 しかし言葉は道具なのですから、使い手がいちばん便利な道具を選べば、それが最善でいいのではないでしょうか。僕は上述のイギリス紳士の態度に品がないと思いました。
 標準はあるでしょうけれど、標準にあわせなければいけないということは、ないほうが望ましい。日本語もいろいろな地域的な表現があっていいとおもいます。むしろ、外国人の日本語から表現法を学ぶことがあるくらいのほうが、豊かでいいと思います。
 コミュニケーションが深くなっていくのであれば、どういう道筋を通ってもいいと思います。

Qアクセスからエクセルのa列に入力されているセルの個数を数えたい

アクセスvbaで
エクセルのa列の個数を数えることは可能でしょうか?

MsgBox GetObject(, "Excel.Application").Workbooks("Access用.xls").WorkSheets("集計").WorksheetFunction.Count(Columns("a"))

だとコンパイルエラ-となってしまいます。

なので、
エクセル側でa1に集計セルを作って
MsgBox GetObject(, "Excel.Application").Workbooks("Access用.xls").WorkSheets("集計").Range("a1").Value

としていますが
できればアクセスからダイレクトに個数を数えたいです。
できますでしょうか?
よろしくお願いします。

Aベストアンサー

MsgBox GetObject(, "Excel.Application").WorksheetFunction.Count(GetObject(, "Excel.Application").Workbooks("Access用.xls").WorkSheets("集計").Columns("a"))

Q「411式 英語発音完全マスター」を体験された方おりましたら感想など聞

「411式 英語発音完全マスター」を体験された方おりましたら感想など聞かせてください。

Aベストアンサー

開校から1~2年の小さなスクールなので、コースを修了なさった方もまだそれほど多くはないのではないでしょうか。よって「411式 英語発音完全マスター」についてのブログもほとんど存在しないようです。もう一つ以下のサイトに少しだけ記述がありました。昨年、英語の好きな人同士が集まってネット上でチャットを行ったことがありますが、そのときにチャットに参加した人の一人が「411式 英語発音完全マスター」についてほんの少しだけ触れていました。下アゴを支点にして舌を素早く動かす練習など、ユニークで楽しいらしいです。

http://eigohatsuon.web.fc2.com/index.html

QEXCELのA列に全て入ってしまったデータをセル毎に表示したい。

あるホームページにTableタグで記述された表があります。
その表をドラッグ選択でコピーし、EXCEL2003にテキスト形式で貼り付けると、EXCELのA列に各行のデータが全て入ってしまいます。
tdタグ毎に、EXCELのセルに振り分けて表示したいのですが、どうすればよいでしょうか。

【試したこと】
1)文字コードを変換すればよいのかと思い、解らないながらもStirling1.31というソフトで文字コードをみると、列の間は[20]というコード?になっておりました。半角スペースで入力したデータも同じく[20]と出ますので、tdタグは半角スペースとして認識されているのでしょうか。
文字列にも普通に半角スペースがまぎれているので、tdのコードのみをどう変換したらよいのかわからず、閉じました。

2)EXCELのファイルをテキスト形式で保存し、開くときにスペース区切りを選んで、区切りたい位置をクリックして、"フィールドの幅"というものを設定したものの、文字の長さが行ごとに違うので固定の幅では上手くセル毎に振り分けられませんでした。

至らない説明で申し訳ありません。ホームページのデータをダイレクトにEXCLEにテキストで貼り付けるという方法からして間違っているのでしょうか。
600件以上あるデータで困っています。
詳しい方ご教授願います。
どうぞよろしくお願いいたします。

あるホームページにTableタグで記述された表があります。
その表をドラッグ選択でコピーし、EXCEL2003にテキスト形式で貼り付けると、EXCELのA列に各行のデータが全て入ってしまいます。
tdタグ毎に、EXCELのセルに振り分けて表示したいのですが、どうすればよいでしょうか。

【試したこと】
1)文字コードを変換すればよいのかと思い、解らないながらもStirling1.31というソフトで文字コードをみると、列の間は[20]というコード?になっておりました。半角スペースで入力したデータも同じく[20]と出ますの...続きを読む

Aベストアンサー

通常は[区切り位置]を使う場面ですが、
今回の場合は、
>文字列にも普通に半角スペースがまぎれている
ということですから、
単純にスペースで区切ってしまうわけにはいきませんね。

 1.Webページ上の表をコピーする
 2.適当なシートにまずは【HTML形式で】貼り付ける
 3.2をコピーする
 4.目的のシートで右クリック > [形式を選択して貼り付け] > [値]

でいかがでしょうか。

ご参考まで。

Q英語ネイティブ並の方!結婚式パンフレット表紙に載せるタイトルをアドバイスしてください

結婚式披露宴で使う、パンフレットを自作しています。
席次表、メッセージ、プロフィールなどが一冊になったものです。

表紙に「Welcome to our Wedding Reception」
のようなタイトル(?)を書きたいのですが、
どうも教科書英語的かなあという印象が拭えません…。

そこで、
本当に英語を使う人だったらどんなタイトルをつけるのか
または実際、欧米の結婚式ではどんなタイトルをつけるのか
アドバイスいただけませんか?

「あまり一般的ではないけれど、こんな英語なら”粋”だよ」
という個人的な好みの英語でも結構です。
よろしくおねがいします!

Aベストアンサー

いわゆるmarriage ceremony/reception programを書いた2-数ページの小冊子の表紙は、表紙にLove is ...とかいったような簡単な句や文があり、中に式次第等のことなどが書いてあったと思いす。

今回のは中身は日本語でカバーに、ということですね。

「個人的な好み」で:

Yasuo Fukuda (1)
and (1)
Norika Fujiwara (1)
thank you for joining us to (1)
cerebrate on love today. (1)

Sunday, February 3 (1)

(上記英文を投稿するとどのような形になるかわかりませんが、(1)
それぞれで一行で、最後の(1)は一行空け、各(1)の中心を真ん中にそろえます)

米国で2回ほど結婚式にでましたが、そういう小冊子はなかったですね。ある程度の式だとレベルだとつくるのでしょうかね?

冒頭の言葉をGoogleすれば、参考情報があるかもしれません。

いわゆるmarriage ceremony/reception programを書いた2-数ページの小冊子の表紙は、表紙にLove is ...とかいったような簡単な句や文があり、中に式次第等のことなどが書いてあったと思いす。

今回のは中身は日本語でカバーに、ということですね。

「個人的な好み」で:

Yasuo Fukuda (1)
and (1)
Norika Fujiwara (1)
thank you for joining us to (1)
cerebrate on love today. (1)

Sunday, February 3 (1)

(上記英文を投稿するとどのような形になるか...続きを読む

Q[初心者です]VBAで指定列からAを検索し、発見したら隣のセルに値0を入れるマクロ。

VBAで指定列からAを検索し、発見したら隣のセルに0を入れるマクロを組みたいのですが、組み方がVBA初心者の為わかりません。
(例)
L列に、A、B、C、D、E、Fとランダムに文字が入っていて、
文字Aを検索し、発見したら隣のI列に値0を入れるというマクロです。

Sub Search()
Dim A As String
Set A = Worksheets("Sheet1").Cells.Find("A")
If A Is Nothing Then
ActiveCell.Offset(0, 1).Value = 0

End If
End Sub
と過去の質問で考えてみたのですが、Aがあった時、、、、
とコードが書けないです。
大変困っているので、ご教授頂けないでしょうか?
出来れば、そのままマクロに出来るコードを教えて頂けないでしょうか?
宜しくお願い致します。

Aベストアンサー

こんばんは。

#3さんのおっしゃっていることも、もっともなのですが、気になる点がありましたので、自分のことを踏まえて、書かせていただきます。

いずれ、また、同じようなケースが出会うと思います。こんな原則を考えてみたらどうでしょうか?それは、私も自身も同じなのですが、ワークシートのコマンドで行われるものは、記録マクロから作ってみるということです。他にも、「統合」とか、「置換」とか「オートフィルタ」「フィルタオプション」とかは、みんなパターンが決まっています。
その中の代表格が、この「Find」 です。

>Set A = Worksheets("Sheet1").Cells.Find("A")

>過去の質問で考えてみたのです

どうも、Find メソッドは、あるレベル以下の人は、省略する傾向があるようです。何が大事で、何が大事でないかというのは、やってみなければ分かりませんが、検索語だけを入れる書き方は、実務では、あまりしないほうがよいと思います。

だいたい、以下のTestFind2 ぐらいまでに、省略は、とどめたほうがよいです。

それは、Find は、必ずしも自分が思っているデフォルトとは違うことがあるので、「明示的(意図的に)」にオプションは入れたほうがよいです。
例えば、大文字小文字の違いを付けるなら、MatchCase:=True, 数式まで探すなら、LookIn:=xlFormulas

なお、Find メソッドは、5年経っても、たぶん完全に覚えられません。面倒なコードのひとつです。ですが、これはパターンが決まっているので、ひとつパターンが決まったら、それに当てはめればよいだけです。

#3さんで示されているMougのサンプルコードと似てはいるのですが、Mougのサンプルコードでは、Verionによって、失敗することがあります。

'--------------------------------------
'記録マクロをそのまま使う方法
Sub TestFind1()
Dim c As Range
 Set c = Columns("L:L").Find(What:="A", _
           After:=ActiveCell, _
           LookIn:=xlValues, _
           LookAt:=xlPart, _
           SearchOrder:=xlByRows, _
           SearchDirection:=xlNext, _
           MatchCase:=False, _
           MatchByte:=False, _
           SearchFormat:=False)
 c.Offset(0, 1).Value = 0
End Sub
'--------------------------------------
'TestFind1 をアレンジしてみる
Sub TestFind2()
Dim c As Range
'検索語
Const MYTXT As String = "A"
 Set c = ActiveSheet.Columns("L:L").Find(What:=MYTXT, _
           LookIn:=xlValues, _
           LookAt:=xlPart, _
           MatchCase:=False)
 If Not c Is Nothing Then
    c.Offset(0, 1).Value = 0
 End If
End Sub

'---------------------------------------
'複数ある場合(パターンを使った方法)
'---------------------------------------
Sub TestFind3()
  Dim c As Range
  Dim FirstAdd As String
  Const MYTXT As String = "A"
  Set c = ActiveSheet.Columns("L:L").Find( _
    What:=MYTXT, _
    LookIn:=xlValues, _
    LookAt:=xlPart, _
    MatchCase:=False)
  
  If Not c Is Nothing Then
    FirstAdd = c.Address
    Do
      c.Offset(, 1).Value = 0
      Set c = ActiveSheet.Columns("L:L").FindNext(c)
      If c.Address = FirstAdd Then Exit Sub
    Loop Until c Is Nothing
  End If
End Sub

こんばんは。

#3さんのおっしゃっていることも、もっともなのですが、気になる点がありましたので、自分のことを踏まえて、書かせていただきます。

いずれ、また、同じようなケースが出会うと思います。こんな原則を考えてみたらどうでしょうか?それは、私も自身も同じなのですが、ワークシートのコマンドで行われるものは、記録マクロから作ってみるということです。他にも、「統合」とか、「置換」とか「オートフィルタ」「フィルタオプション」とかは、みんなパターンが決まっています。
その中の代表...続きを読む

Q英語で終業式を意味する文

英語で終業式を意味する言葉ってclosing ceremonyであってますか?
・今日で高校●年が終了した、
・今日終業式があった
・4月から●年です

英語でどういう文になりますか?

Aベストアンサー

今日終わりましたか・・・いいですね、若い人たちは(!)。

一応「2年生」がおわったとし:

My second year at (senior) high school ended today.
Today was the last day of my second year at high school.
I've wrapped up my second year ... なんてのも
暦年でなく学年度なんで、必要に応じて、academic year と。


We had an end-of-academic year ceremony today.
There was a ceremony to end the academic year today.

I will start my final (third) year of high school in April.
April will kick off my final year at high school.
This coming April will be the starting month of my final ...

がんばってください。

今日終わりましたか・・・いいですね、若い人たちは(!)。

一応「2年生」がおわったとし:

My second year at (senior) high school ended today.
Today was the last day of my second year at high school.
I've wrapped up my second year ... なんてのも
暦年でなく学年度なんで、必要に応じて、academic year と。


We had an end-of-academic year ceremony today.
There was a ceremony to end the academic year today.

I will start my final (third) year of high school in Apri...続きを読む

QACCESSの主キーの列の隣列

に+列があるテーブルがあります
たとえばヘルプで読み出せるサンプルNorthwind.mdbの得意先テーブルなどです

この+列の名前はなんと言うのでしょうか?
普通に作ったのではこういうものはできません
どうやったらこういう+列を作ることができるのでしょうか?

Aベストアンサー

"サブデータシート"だと思われます。

参考URL:http://www.relief.jp/itnote/archives/000417.php


人気Q&Aランキング