ついに夏本番!さぁ、家族でキャンプに行くぞ! >>

発注品一覧表から社別にデータを抽出した発注シートを関数で作りたいです。
オートフィルタは諸事情あって使用しません。

過去の質問のこちらが、かなり近い回答なのだと思いますが
不勉強で自分用に修正ができませんでした。
http://oshiete.goo.ne.jp/qa/3157199.html

一覧表はこのようになっています。
日付 社名 品目 値段
4/1  C社 鉛筆 50円 
4/1  A社 定規 150円
4/2  C社 ペン 100円
4/2  B社 鉛筆 100円

社別の別シートに日付・品目・値段を一覧から関数で抽出できるでしょうか?
どうぞよろしくお願いします。

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

A 回答 (5件)

拝見いたしましたが参考にされたサイトですが


データが社名順に並んでいますよね。
今回の質問ですが、データが順に並んでいませんので全く違った発想が必要になります。
簡単な方法では、作業列を一列入れる方法がわかりやすいです。
データのシートに作業列も作れないのであれば 配列関数を使うことになりますが
データの量が多くてその式を縦横にコピーして使うですからパソコンの負担も重くなります。

式の意味を理解が難しいかと思いますが
INDEX関数で 範囲の指定の部分を条件で抽出した内容が入るように工夫した式がよく見受けられます
ので一応紹介しておきます
仮に シート名 データ
日付 社名 品目 値段
4/1  C社 鉛筆 50円 
4/1  A社 定規 150円
4/2  C社 ペン 100円
4/2  B社 鉛筆 100円

別のシート
   社名 品目
   C社

日付 社名 品目 値段

とB2セルに抽出したい社名が入っているとして
A4セルに
=INDEX(データ!A:A,SMALL(INDEX((データ!$B$1:$B$100<>$B$2)*1000+ROW(A$1:A$100),),ROW(A1)))&""
と入れて 右へコピー、下へコピーしてみてください。
INDEX((データ!$B$1:$B$100<>$B$2)*1000+ROW(A$1:A$100),)
の部分が理解しにくいと思います。
社名の範囲でC社でなかったら1000倍したとてつもない大きな数字を加える
C社でればそのまま、その行番号 といった架空の列を作成します。
その架空の列の小さい数値の順に 最初のINDEX関数で取り出します
といった感じです。(なかなか文書で説明するのも難しくてすみません)

別案ですが
フィルターオプションの設定(オートフィルターではありません)
をしたほうがシンプルでデータ量が増えた時も勝手に対応してくれます。
    • good
    • 0
この回答へのお礼

丁寧な説明と回答ありがとうございます。
参考サイトの質問と今回の質問との相違は社順など関係していたんですね…。
目的のための関数の組み合わせがわからなくて式の意味がまだ理解できていないんです…。
まったくわからなかった式も、今回説明いただいた内容でなんとなくですが理解できました!

また、「フィルターオプションの設定」も良いですね!(いつもオートフィルタしか使わなかったので知りませんでした…)
一緒にデータを使う知り合いもあまりエクセルに詳しくないので、相談してどちらが使いやすいか相談の上進めていくことにします。
本当にありがとうございました。

お礼日時:2011/04/17 20:33

ご回答者様には失礼とは思いますが関数はマニアックなもので、非常に難解です。


前回のご回答で解釈できない事ですので次の方法は如何でしょうか。
(1)発注シートのA1に社名と入力、A2に社名を入力
(2)データ→フィルタ→フィルタオプションの設定
(3)「指定した範囲」を選択、リスト範囲欄うぃお右クリック→対象シートクリック→対象列範囲を選択、検索条件範囲欄をクリック→A1:A2を選択→抽出範囲欄を選択、表示開始セルを選択→OK
(4)操作を簡略したい場合、マクロ記録→(2)(3)操作→マクロ記録終了すればショートカット等のワンタッチ操作で可能です。

参考URL:http://www.eurus.dti.ne.jp/~yoneyama/Excel/filte …
    • good
    • 1
この回答へのお礼

丁寧なご回答ありがとうございます。
いえいえ、本当に仰るとおり、関数は簡単なものが使えるからといって目的どおりに使うには理解と発想が大きく必要になるんだと今回つくづく感じました。
ほかのご回答にもありましたが、今回ご回答いただいた「フィルタオプションの設定」はとてもいい方法ですね!
マクロの記録の仕方までありがとうございます。マクロを使うとより作業が楽になりますね!!
一緒にデータを使う相手も初心者なので、関数にこだわらずフィルタオプションの設定を勧めてみようと思います。
本当にありがとうございました。

お礼日時:2011/04/17 20:50

 今仮に、元データの表の中で、「日付」と入力されているセルが、Sheet1のA1セルであり、


別シートのB2セルに、社名を入力するものとします。

 まず、別シートの
A1セルに  社名
A3セルに  日付
B3セルに  品目
C3セルに  値段
と入力して下さい。
 次に、別シートのA4セルに次の数式を入力して下さい。

=IF(OR(COUNTIF(Sheet1!$1:$1,A$3)=0,ROWS($4:4)>COUNTIF(Sheet1!$B:$B,$B$2)),"",INDEX(OFFSET(Sheet1!$A:$A,,MATCH(A$3,Sheet1!$1:$1,0)-1),SUMPRODUCT(ROW(Sheet1!$B$1:INDEX(Sheet1!$B:$B,MATCH(9^9,Sheet1!$A:$A)))*(Sheet1!$B$1:INDEX(Sheet1!$B:$B,MATCH(9^9,Sheet1!$A:$A))=$B$2)*(COUNTIF(Sheet1!$B$1:INDEX(Sheet1!$B:$B,ROW(Sheet1!$B$1:INDEX(Sheet1!$B:$B,MATCH(9^9,Sheet1!$A:$A)))),$B$2)=ROWS($4:4)))))

 次に、別シートのA4セルをコピーして、別シートのB4セルとC4セルに貼り付けて下さい。
 次に、別シートのA4セルの書式設定を[日付]として下さい。
 次に、別シートのA4~C4の範囲をコピーして、同じ列の5行目以下に貼り付けて下さい。

 後は、別シートのB2セルに

C社

等の社名を入力すれば、抽出結果が自動的に表示されます。
    • good
    • 0
この回答へのお礼

簡潔でわかりやすいご回答ありがとうございます。
ご説明いただいたとおり別シートに入力していったところ、すぐに目的の結果が出ました!
あとは教えていただいた数式が理解できるように、これから勉強していきます。
本当にありがとうございました。

お礼日時:2011/04/17 20:44

シート1にお示しのデータがあるとしてら作業列を作って対応するのが式も単純で分かり易く計算にも負担がかかりません。


E2セルには次の式を入力して下方にオートフィルドラッグします。

=IF(A2="","",B2&COUNTIF(B$2:B2,B2))

そこで別のシート例えばC社についてのデータを表示したい場合には別のシートのA1セルにはC社と入力します。
2行目には項目を表示させるとしてA2セルには日付、B2セルには品名、C2セルには値段と入力します。

A3セルには次の式を入力してC3セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。

=IF(COUNTIF(Sheet1!$E:$E,$A$1&ROW(A1))=0,"",INDEX(Sheet1!$A:$D,MATCH($A$1&ROW(A1),Sheet1!$E:$E,0),IF(COLUMN(A1)=1,1,IF(COLUMN(A1)=2,3,4))))

その後にA列のセルの表示形式を日付にします。
これでA1セルに入力した社名のデータのみが表示されることになります。他社の場合でも入力の式は同じで、A1セルの社名を変えることで良いでしょう。
    • good
    • 0
この回答へのお礼

簡潔でわかりやすい回答ありがとうございました。
シート1で作業列を作って、ご回答の数式を当てはめたところすぐに思い通りの結果が反映されました。
データを共有する相手からの注文通りの結果にできましたので、これで相手も満足すると思います。
本当にありがとうございました。

お礼日時:2011/04/17 20:40

質問に載っている、質問に回答している者です。


imogasi方式でやってみます。
データ
Sheet1のA1:D5に
日付社名品目値段C社 <-F列です=作業列
4月1日C社鉛筆50円1
4月1日A社定規150円
4月2日C社ペン100円2
4月2日B社鉛筆100円
F1に選択する社名を要れます。
F2の式は
=IF(B2=$F$1,MAX($F$1:F1)+1,"")
下方向に式を複写します。
F列には上行からC者の行の連番が入ります。
Sheet2に行って、?1には =Sheet1!F1
A2セルには
=INDEX(Sheet1!$A$1:D10,MATCH(ROW()-1,Sheet1!$F$1:$F10,0),COLUMN())
右方向にD列まで式を複写。
その後A2:D2の式を下方向に式を複写。
D10やF10の10は実情に合わせて増やしてください
結果
Sheet2
C社
2011/4/1C社鉛筆50円
2011/4/2C社ペン100円
A列は表示形式を日付に設定すること。
本件で3件目以降に式を複写すると#N/Aが出ますが、
=IF(ROW()-1>MAX(Sheet1!$F$1:$F$10),"",INDEX(Sheet1!$A$1:D10,MATCH(ROW()-1,Sheet1!$F$1:$F10,0),COLUMN()))
とすると見えなくなります。
ーー
これはShhet1で作業列F列を使ってます(欠点)
ーー
Googleで「imogasi方式」で照会すれば、沢山の関数での抜き出し問題が出てきます。
その中に一発の式で、該当のC社の1項目セルが出る式が載ってます。この式が理解できれば良いですが、そうでなければ上記方法が難易度で次になると思う。
==
いつも言っているが、関数は抜き出し問題は苦手(不適)だと思う。エクセル(関数)はもともと計算用です。
操作のフィルタなどで考えることをすすめます(特に初心者には)。
ーー
週に3度程度は抜き出し問題がこのコーナーに出て、うんざりしてますが。
上記imogasi方式で出る質問の数個を読めば、解法のタイプは出つくしていると思う。
    • good
    • 0
この回答へのお礼

丁寧なご回答ありがとうございます。
自分なりに検索をかけてみたのですが、まだまだ甘かったようですね。
フィルタを使うなど未熟なりにできる範囲でやっていけるよう考えます。
教えていただいたこと、きちんと理解できるように勉強します。
ありがとうございました。

お礼日時:2011/04/17 20:23

このQ&Aに関連する人気のQ&A

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

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

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

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

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QExcelでデータ抽出処理をオートフィルタではなく関数でできませんか?

Excelで、発注書を作成しようとしています。
1、Sheet1には<発注先><品名><数量>のデータになっており、
  同じ発注先のデータも含んでいます。
  <発注先> <品名> <数量>
   A社   みかん   10
   A社   もも     5
   B社   ぶどう    3
   C社   みかん    5
   C社   バナナ    5

2、このSheet1のデータを各発注先ごとに発注書を作成するため
  別シートに用意した発注書フォーマットに貼り付けたい。
  (注:発注先は60社ほどあり、オートフィルタで発注先ごと
     にコピペしていくのは、困難です)

 できれば関数でできればいいのですが、何かよい方法はないでしょうか?よろしくお願いします。
   

Aベストアンサー

「別シート」において
1.セル B2 に「発注先」名を入力
2.セル A4 に次式を入力して、此れをセル B4 に複写
  =IF(ROW(A1)>COUNTIF(Sheet1!$A$2:$A$1000,$B$2),"",OFFSET(Sheet1!$A$1,MATCH($B$2,Sheet1!$A$2:$A$1000,0)+ROW(A1)-1,COLUMN(A1)))
3.範囲 A4:B4 を下方にズズーッと複写

Qエクセル・オートフィルタを使わず関数で抽出をするには

excelのデータで、該当する項目のある行のみの抽出をオートフィルタもマクロも使用せずに、関数で行う方法があれば教えてください。
    A B
1  桃太郎 123456
2  猿   122222
3  キジ  123555
4  桃太郎 122245
   …
1000 桃太郎 002145
↑このような表で「桃太郎」だけを抽出したいのです。
イメージとしては、ボックスに「桃太郎」と入力するだけで結果が一覧として出るようなものを作りたいのです。
さらにB列が昇順に並び替えされていると、なおよいのです。
随時更新するデータなので、その都度の最新の表が欲しいのです。

オートフィルタ→並べ替えをすれば簡単なのですが、エクセルを全く使えないような人がいる職場環境でして、教えるのが面倒というのとデータがぐちゃぐちゃになったら困るので、誰でも簡単にできる方法はないものかと考えています。
また環境的にマクロはあまり使いたくないのです。

よろしくお願いします。

Aベストアンサー

B列の値は数字のみでしょうか?
こんな方法を考えてみました...

C1を条件値入力セルとしました

(1)下記のセルにそれぞれの式を入れる
D1: =IF(A1<>$C$1,"",B1+ROW()/10000)
E1: =RANK(D1,D:D,1)
F1: =MATCH(ROW(),E:E,0)
G1: =IF(ISERROR(F1),"",OFFSET(A$1,F1-1,0,1,1))
H1: =IF(ISERROR(F1),"",OFFSET(A$1,F1-1,1,1,1))

(2)D1:H1の内容を十分な件数だけ下方向にコピー

(3)D,E,Fの列は非表示にしましょう

(4)C1に桃太郎を与えると G,H列に抽出してソートした結果がでます

Qある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

Excelの関数について質問します。
ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。
なければユーザー定義で作りたいと思っています。
VLOOKUP関数では一番左端が検索されますが、
それをある範囲まで拡張して、
その右隣の値を取得できるようにしたいのです。
どうかお知恵をお貸しください。

Aベストアンサー

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場合によっては、IFをかぶせてCOUNTIFで確認した方が良いかもしれません。
 ex. =IF(COUNTIF(A1:F200,X1)=1,【上記数式】,"えらー")

ちなみに、VBAでやるならこんな感じになるかと。

動作の概要
 【検査範囲】から【検査値】を探し、
 最初にHITしたセルについて、右隣のセルの値を返す。
 ex. =Sample(X1,A1:F200)

'--------------------------↓ココカラ↓--------------------------
Function Sample(ByVal 検査値 As Variant,ByVal 検査範囲 As Range)
 For Each セル In 検査範囲
  If セル = 検査値 Then Exit For
 Next セル
 Sample = セル.Offset(0, 1)
End Function
'--------------------------↑ココマデ↑--------------------------

いずれもExcel2003で動作確認済。
以上ご参考まで。

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場...続きを読む

Q【エクセル】表から条件に合ったデータを別シートに順番に抽出したい

エクセルの表である条件にあてはまる行を
別シートに順番に抽出されるような関数を教えてください。


シート1のB列にあるデータが"渋谷区"のとき
シート2のE74からE80くらいまでに
シート1のC列のデータを上から順に抽出されるようにしたいです。

【シート1】
A        B         C
1 東京都 渋谷区  PC
2東京都  港区  PC
3東京都 新宿区  マウス
4東京都 渋谷区  ペン
5東京都 渋谷区  モニタ



10

【シート2】

E
74 PC
75 ペン
76 モニタ



80 


【補足】
元の表(シート1)を編集することがあるので
自動的に反映されるよう、関数で作成できたらと思います。
シート2の構成上、抽出後のソートや、フィルタオプションは避けたいです。

わかりづらい文章で申し訳ございませんが
どなたかいいアドバイスがありましたら教えてください。
お礼は明日になってしまいますが、必ずご返答いたします。
よろしくお願いいたします。

 

エクセルの表である条件にあてはまる行を
別シートに順番に抽出されるような関数を教えてください。


シート1のB列にあるデータが"渋谷区"のとき
シート2のE74からE80くらいまでに
シート1のC列のデータを上から順に抽出されるようにしたいです。

【シート1】
A        B         C
1 東京都 渋谷区  PC
2東京都  港区  PC
3東京都 新宿区  マウス
4東京都 渋谷区  ペン
5東京都 渋谷区  モニタ



10

【シート2】

E
...続きを読む

Aベストアンサー

>E74に関数を入力し、その後関数をE80までドラッグすればよいのでしょうか?
いいえ。
1.
=INDEX(シート1!C1:C11,SMALL(IF(シート1!B1:B10="渋谷区",ROW(A1:A10),11),ROW(A1:A10)))&""
の数式を掲示板上でコピーします(シート名は合わせてください)
2. E74:E80セル範囲を選択します
3. 数式バーで[Ctrl]+[V]貼り付け
4. [Ctrl]+[Shift] +[Enter] でセルへの入力を確定させます

>その際、絶対参照や相対参照は必要でしょうか?
セルのコピーはしませんので不要です。
参考まで

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m

Qエクセルで特定の行を抽出させる方法について。

エクセルでの関数についての質問ですが、

     A     B    C     D  
 1  名前   日付  場所   時間
 2  Aさん  10/7  工場1   8.0
 3  Bさん  10/7  工場1   8.0
 4  Cさん  10/7  工場2   4.0
 5  Cさん  10/7  工場1   8.0
 6  Aさん  10/8  事務所   8.0
 7  Cさん  10/8  工場2   8.0
 8  Aさん  10/9  事務所   4.0

以上の表から別のシート2にAさんだけの行を抽出するには、どのようにすれば良いのでしょうか?
INDEXやMATCH・LOOKUPを使っていろいろ試したのですがイマイチうまく行かないもので・・・。

因みに、シート2のイメージは

      A     B     C  
 1   名前  :  Aさん 
 2
 3   日付   場所   時間
 4   10/7   工場1    8.0
 5   10/8   事務所    8.0
 6   10/9   事務所   4.0

このような感じです。

よろしくお願いします。

エクセルでの関数についての質問ですが、

     A     B    C     D  
 1  名前   日付  場所   時間
 2  Aさん  10/7  工場1   8.0
 3  Bさん  10/7  工場1   8.0
 4  Cさん  10/7  工場2   4.0
 5  Cさん  10/7  工場1   8.0
 6  Aさん  10/8  事務所   8.0
 7  Cさん  10/8  工場2   8.0
 8  Aさん  10/9  事務所   4.0

以上の表から別のシート2にAさんだけの行を抽出するには、どのように...続きを読む

Aベストアンサー

こんにちは!

極端にデータ量が多い場合はおススメできませんが・・・
一気に表示する方法です。

↓の画像で右側がSheet2とします。
Excel2007以降のバージョンをお使いだとして・・・

Sheet2のA4セルに
=IF($B$1="","",IFERROR(INDEX(Sheet1!B$1:B$1000,SMALL(IF(Sheet1!$A$1:$A$1000=$B$1,ROW(A$1:A$1000)),ROW(A1))),""))
これは配列数式になってしまいますので、Shift+Ctrl+Enterで確定!
この画面から数式をコピー&ペーストする場合は
上記数式をドラッグ&コピー → Sheet2のA4セルを選択 → 数式バー内に貼り付け
→ そのまま(編集可能なまま)Shift+Ctrlキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り配列数式になります。
これをC4セルまでコピー!

A4セルの表示形式は「日付」にし、A4~C4セルを範囲指定 → C4セルのフィルハンドルで下へコピー!

これで画像のような感じになります。m(_ _)m꜊

こんにちは!

極端にデータ量が多い場合はおススメできませんが・・・
一気に表示する方法です。

↓の画像で右側がSheet2とします。
Excel2007以降のバージョンをお使いだとして・・・

Sheet2のA4セルに
=IF($B$1="","",IFERROR(INDEX(Sheet1!B$1:B$1000,SMALL(IF(Sheet1!$A$1:$A$1000=$B$1,ROW(A$1:A$1000)),ROW(A1))),""))
これは配列数式になってしまいますので、Shift+Ctrl+Enterで確定!
この画面から数式をコピー&ペーストする場合は
上記数式をドラッグ&コピー → Sheet2のA4セルを選択 → 数式バ...続きを読む

Qエクセルで条件に合うものを別シートに抽出(関数)

希望日    りんご   ばなな   みかん   担当   配達チェック
6月1日      2             1     山田
6月3日             4      2     佐藤      
6月1日      3                   山田      済
6月2日             1            佐藤 
6月2日                    2     山田

というデータがsheet1に入力されています。
<条件>
 ・担当 山田のもの
 ・6月2日以前(このデータでは1日と2日)
 ・配達チェックが済でないもの(空白です)

この条件を満たすものをsheet2に抽出したいのです。
希望日    りんご   ばなな   みかん   担当   配達チェック
6月1日      2              1     山田
6月2日                    2     山田
とsheet2に表示させるには関数でできますか?
できれば、セル参照でA1セルに6月2日、B1に山田と入力すると抽出されるととても便利なのですが・・・。
皆様のお知恵を拝借させてください!!

希望日    りんご   ばなな   みかん   担当   配達チェック
6月1日      2             1     山田
6月3日             4      2     佐藤      
6月1日      3                   山田      済
6月2日             1            佐藤 
6月2日                    2     山田

というデータがsheet1に入力されています。
<条件>
 ・担当 山田の...続きを読む

Aベストアンサー

こんばんは!
一例です。

↓の画像でSheet1に作業用の列を設けています。
作業列G2セルに
=IF(COUNTBLANK(Sheet2!$A$1:$B$1),"",IF(AND(A2<=Sheet2!$A$1,E2=Sheet2!$B$1,F2=""),ROW(),""))
という数式を入れオートフィルでずぃ~~~!っと下へコピーしておきます。

そしてSheet2のA4セルに
=IF(COUNT(Sheet1!$G:$G)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!$G:$G,ROW(A1))))
という数式を入れ列方向と行方向にオートフィルでコピー!

A列の表示形式は「日付」にしておきます。
ただ、このままではSheet1に空白セルがあれば「0」が表示されてしまいますので、
当方使用のExcel2003の場合ですが、
メニュー → ツール → オプション → 「表示」タブ → 「ゼロ値」のチェックを外すと
画像のような感じになります。

以上、参考になれば良いのですが・・・m(__)m

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。


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

人気Q&Aランキング

おすすめ情報